From e7920c07bb597109f8b356afa1d34fbe31b828c9 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Sun, 16 Aug 2026 21:18:33 +1000 Subject: [PATCH] fix name of boolean constants located during symbol lookup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both `false` and `true` were incorrectly created as constants named “boolean” during symbol resolution. They were registered in the resolution table under their correct names, so symbol resolution worked out. But if you inspected the AST data structures you would find literal expressions “false” and “true” would be described as pointing to values named “boolean”. Github: fixes #342 “symbol resolution calls 'true' and 'false' instead 'boolean'” --- librumur/src/resolve-symbols.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/librumur/src/resolve-symbols.cc b/librumur/src/resolve-symbols.cc index 7210bc36..def7c123 100644 --- a/librumur/src/resolve-symbols.cc +++ b/librumur/src/resolve-symbols.cc @@ -41,10 +41,9 @@ class Resolver : public Traversal { symtab.declare("boolean", td); mpz_class index = 0; for (const std::pair &m : Boolean->members) { - symtab.declare(m.first, - Ptr::make("boolean", - Ptr::make(index, location()), - Boolean, location())); + symtab.declare(m.first, Ptr::make( + m.first, Ptr::make(index, location()), + Boolean, location())); index++; } }