How do you gracefully stop the compiler? You can specify garbage to stop it, but is there a better way?
static:
echo "compiling..."
proc display[T](message: T) =
when not (T is string):
compile error: "T is not a string"
echo message
display[string]("hello")
# Test with and without this line.
# display[int](5)
The answer to my question in another thread lead to the answer to this one. Replace the "compile error" line with:
static:
doAssert(false, "T is not a string")
The the doAssert will run at compile time.
static:
echo "compiling..."
proc display[T](message: T) =
when not (T is string):
{.fatal: "T is not a string".}
echo message
# works
display[string]("hello")
# fatal error, compilation aborted
# display[int](5)