From ce61e94f89042d80f3439c3558fdbdd5dff1ebe9 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 2 Mar 2023 05:50:52 -0700 Subject: [PATCH] Fix macroExpandAndConvert with -D kissCache --- src/kiss/Kiss.hx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/kiss/Kiss.hx b/src/kiss/Kiss.hx index 4b0b069..bcb5ef5 100644 --- a/src/kiss/Kiss.hx +++ b/src/kiss/Kiss.hx @@ -471,6 +471,7 @@ class Kiss { // Core functionality of Kiss: returns ReaderExp when macroExpandOnly is true, and haxe.macro.Expr otherwise public static function macroExpandAndConvert(exp:ReaderExp, k:KissState, macroExpandOnly:Bool):Either { #if kissCache + var str = Reader.toString(exp.def); if (!macroExpandOnly) { if (expCache == null) { expCache = if (sys.FileSystem.exists(cacheFile)) { @@ -479,9 +480,9 @@ class Kiss { {}; } } - var str = Reader.toString(exp.def); + if (expCache.exists(str)) { - return Context.parse(expCache[str], Helpers.macroPos(exp)); + return Right(Context.parse(expCache[str], Helpers.macroPos(exp))); } } #end @@ -641,7 +642,10 @@ class Kiss { #if kissCache if (!macroExpandOnly) { if (conversionTime > cacheThreshold && !k.stateChanged) { - expCache[str] = expr.toString(); + expCache[str] = switch (expr) { + case Right(expr): expr.toString(); + default: throw "macroExpandAndConvert is broken"; + } File.saveContent(cacheFile, haxe.Json.stringify(expCache)); } }