Repository navigation
Clarify and() semantics in the Gremlin specification - #3753
Merged
Merged
Conversation
Expand the and() section of the Gremlin semantics specification to cover behaviors the prose left implicit, in language-agnostic spec voice with no runnable examples. It now states that the step tests for the existence of output rather than its content, so a child emitting a boolean false or a null still satisfies its branch and only a branch producing no result filters the traverser. It clarifies that an incomputable comparison, such as one against NaN or across types, is defined to be FALSE and therefore filters the traverser rather than raising an error. It also explains that and() is a connective step whose infix form groups the surrounding traversals, so a projection or terminal step written after it is absorbed into the second branch, and notes that a where() step or placing and() ahead of such a step keeps it applied to the surviving traverser. Assisted-by: Kiro:claude-opus-4.8
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3753 +/- ##
============================================
+ Coverage 76.35% 77.45% +1.09%
- Complexity 13424 14999 +1575
============================================
Files 1012 1050 +38
Lines 60341 66745 +6404
Branches 7075 7994 +919
============================================
+ Hits 46076 51698 +5622
- Misses 11548 11841 +293
- Partials 2717 3206 +489 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Expand the and() section of the Gremlin semantics specification to cover behaviors the prose left implicit, in language-agnostic spec voice with no runnable examples. It now states that the step tests for the existence of output rather than its content, so a child emitting a boolean false or a null still satisfies its branch and only a branch producing no result filters the traverser. It clarifies that an incomputable comparison, such as one against NaN or across types, is defined to be FALSE and therefore filters the traverser rather than raising an error. It also explains that and() is a connective step whose infix form groups the surrounding traversals, so a projection or terminal step written after it is absorbed into the second branch, and notes that a where() step or placing and() ahead of such a step keeps it applied to the surviving traverser.