From 260aa66be77329a9f177eff2dec85181e6bae519 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Wed, 18 Feb 2026 21:46:29 +0800 Subject: Fix TableLit comment nodes under non-reserve comment mode --- src/yuescript/yue_compiler.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 9226e89..ff06625 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -8203,7 +8203,20 @@ private: incIndentOffset(); auto metatable = x->new_ptr(); ast_sel metatableItem; + ast_node* lastValueNode = values.back(); + if (!_config.reserveComment) { + for (auto it = values.rbegin(); it != values.rend(); ++it) { + auto node = *it; + if (!ast_is(node)) { + lastValueNode = node; + break; + } + } + } for (auto value : values) { + if (!_config.reserveComment && ast_is(value)) { + continue; + } auto item = value; switch (item->get_id()) { case id(): { @@ -8327,7 +8340,7 @@ private: if (skipComma || temp.back().rfind("--"sv, 0) == 0) { temp.back() = indent() + temp.back() + nl(value); } else { - temp.back() = indent() + (value == values.back() ? temp.back() : temp.back() + ',') + nl(value); + temp.back() = indent() + (value == lastValueNode ? temp.back() : temp.back() + ',') + nl(value); } } } -- cgit v1.2.3-55-g6feb