Skip to content

Support C++ Boolean constants in BoolExpr - #267

Merged
zayenz merged 2 commits into
mainfrom
feature/6.5.0-boolexpr-constants
Oct 23, 2026
Merged

zayenz merged 2 commits into
mainfrom
feature/6.5.0-boolexpr-constants

Conversation

@zayenz

@zayenz zayenz commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Allow BoolExpr e = false; and BoolExpr e = true; with a dedicated constant node storing a bool. Materialization returns a fixed Boolean variable; asserting true does nothing and asserting false fails the space. Constants use the existing negation and connective processing.

Keep default-constructed expressions as empty accumulators. Restrict implicit construction to actual bool values to preserve integer and pointer overload resolution, and retain the existing integer result of expr(home, true).

Fixes #145.

Validation:

  • Boolean-expression suite: 2,668 cases passed, five iterations and five threads. Includes negated constants in flattened AND/OR, equivalence, implication, assertions, and empty-expression handling.
  • Integrity suite: 490 cases passed.
  • C++17 downstream compile/link/runtime and overload-compatibility probes passed against the shared libraries.
  • Repository tidy and diff checks passed. Native Windows shared-library coverage runs in the existing CI matrix.
  • The documentation target has a pre-existing missing statistics marker in test/package/allocator/boundary.hh; that cleanup is already on feature/6.5.0-cleanups.

@zayenz
zayenz merged commit 5c5cfa8 into main Oct 23, 2026
16 checks passed
@zayenz
zayenz deleted the feature/6.5.0-boolexpr-constants branch October 23, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BoolExpr should be initializable with C++ boolean values

1 participant