diff --git a/kiss/src/kiss/Macros.hx b/kiss/src/kiss/Macros.hx index f5f1bf66..4c7fcc9c 100644 --- a/kiss/src/kiss/Macros.hx +++ b/kiss/src/kiss/Macros.hx @@ -377,6 +377,18 @@ class Macros { ]); }; + k.doc("assertThrowsAtCompileTime", 1, 2, "(assertThrowsAtCompileTime )"); + macros["assertThrowsAtCompileTime"] = (wholeExp:ReaderExp, exps:Array, k:KissState) -> { + var b = wholeExp.expBuilder(); + try { + k.convert(exps[0]); + } catch (e) { + return b.none(); + } + + throw KissError.fromExp(wholeExp, "expression compiled successfully when it was supposed to throw a compiler error"); + }; + function stringsThatMatch(exp:ReaderExp, formName:String) { return switch (exp.def) { case StrExp(s):