diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/LuaNativeLowering.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/LuaNativeLowering.java index b60747f0e..f53945c81 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/LuaNativeLowering.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/LuaNativeLowering.java @@ -401,7 +401,10 @@ public static boolean neverNil(ImExpr e, ImTranslator translator) { return f == translator.luaRawConcatFunc || f == translator.luaRawOrEmptyFunc || f == translator.luaRawToStringFunc - || (f.isNative() && STRING_NATIVES_NEVER_NIL.contains(f.getName())); + || (f.isNative() && STRING_NATIVES_NEVER_NIL.contains(f.getName())) + // a string load of the hashtable emulation answers "" when nothing is stored + || (LuaHashtable.op(translator, f) instanceof LuaHashtable.Op op + && op.kind() == LuaHashtable.Kind.LOAD && op.values() == LuaHashtable.Values.STR); } return false; } diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/lua/translation/LuaHashtableTranslation.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/lua/translation/LuaHashtableTranslation.java index b9ec02d1d..c2c2db304 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/lua/translation/LuaHashtableTranslation.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/lua/translation/LuaHashtableTranslation.java @@ -18,7 +18,8 @@ *