From 276bf6d71acb303ac2ea7b84670763f7ea38e68f Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Fri, 5 Aug 2022 18:50:29 +0000 Subject: [PATCH] assertThrowsAtCompileTime --- kiss/src/kiss/Macros.hx | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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):