From a45f91b5a4760ab6a38e7be3f4e3f9e61fbb846a Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Fri, 29 Oct 2021 13:46:55 -0400 Subject: [PATCH] kiss-interpolated string literals should type as String --- src/kiss/Reader.hx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/kiss/Reader.hx b/src/kiss/Reader.hx index 4768e02..d27feb0 100644 --- a/src/kiss/Reader.hx +++ b/src/kiss/Reader.hx @@ -304,9 +304,10 @@ class Reader { stream.dropChars(1); } var interpExpression = assertRead(stream, k); - interpExpression = CallExp(Symbol("Std.string").withPos(pos), [interpExpression]).withPos(pos); + var b = interpExpression.expBuilder(); + interpExpression = b.callSymbol("Std.string", [interpExpression]); if (wrapInIf) { - interpExpression = CallExp(Symbol("if").withPos(pos), [interpExpression, interpExpression, StrExp("").withPos(pos)]).withPos(pos); + interpExpression = b.callSymbol("if", [interpExpression, interpExpression, b.str("")]); } stringParts.push(interpExpression); case '\\': @@ -333,7 +334,8 @@ class Reader { return if (stringParts.length == 1) { stringParts[0].def; } else { - CallExp(Symbol("+").withPos(pos), stringParts); + var b = stringParts[0].expBuilder(); + b.the(b.symbol("String"), b.callSymbol("+", stringParts)).def; }; default: currentStringPart += next;