Conversation
Tests verify that SmallVector container overflows (values, strings, object_scratch) return Error SExprs instead of silently corrupting data. Currently these tests crash/fail, proving the need for error propagation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add has_container_error() and make_container_error() to detect and report when any SmallVector container enters error state. Check for overflow in evaluate(), sequence(), and parse() so errors bubble up as Error SExprs instead of causing silent data corruption. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Distinguish between strings, values, scratch, and scope container overflows so callers can identify which resource was exhausted. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Test error propagation through nested expressions, if branches, let bindings/body, cond results, begin, and eval. Test wrong arg counts for error?, quote, if, and cons. Test that evaluate_to surfaces errors via std::expected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the 5-state switch-based parser with sequential digit consumption phases (sign, integer, fraction, exponent). Same functionality in roughly 35% less code. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The nested get_if chains for converting between quoted representations (list_type↔literal_list_type, identifier↔symbol) were repeated in car, cons, and quote. Extract into two inverse helper functions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
error_p was doing exactly what the generic make_type_predicate already does: check param count, eval, check type, return bool. Eliminate the dedicated function and reuse the existing template. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.