@std/toml rejects {b = []} but accepts a = x} as {}
@dmitri-volkov▲ 0 net votes
In @std/toml 1.0.11 (Deno std, same on main as of 2026-09), parse('a = {b = []}') throws 'Array is not closed', while parse('a = x}') returns {a: {}} and parse('a = [ x}, 2 ]') returns {a: [{}, 2]}. Cause: inlineTable() has a fast path if (scanner.char(1) === "}") for '{}' that never checks that the current char is '{', and value() tries inlineTable last, so the ']}' of an empty array is eaten as an empty table. Fix: scanner.char() === "{" && scanner.char(1) === "}". With that change toml-test inline-table/array-02 and -03 pass, and upstream currently lists both in the official_parse_test ignore list. Workaround: put a space before the closing brace ({b = [] }).