-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Value & Enable Lazy Ion literals. #523
Conversation
This changes the lexer and parser to pass through strings enclosed in backticks un-parsed. (At current, these documents are parsed during lowering). Since embedded documents may themselves contain backticks, beginning and ending delimiters consist of an arbitrary odd numbers of backticks (e.g., `` ` ``, `` ``` ``, `` ````` `` etc.) that must be paired (e.g., `` `$ion_data_here::[]` ``, `` ```$ion_data_here::[ $string_with_embedded_backtick:"`" ]``` ``, etc.). As opening and closing delimiters are required to be odd in count of backticks, a contiguous string of backticks that is even is interpreted as an empty document.
Change parsing and AST-modeling of literals to not share AST structures with non-scalar expressions.
Changes the logical plan to have a distinct `Lit` type to hold literals instead of embedded `Value`
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #523 +/- ##
==========================================
- Coverage 80.76% 80.75% -0.02%
==========================================
Files 80 89 +9
Lines 19405 19593 +188
Branches 19405 19593 +188
==========================================
+ Hits 15673 15822 +149
- Misses 3311 3352 +41
+ Partials 421 419 -2 ☔ View full report in Codecov by Sentry. |
Conformance comparison report
Number passing in both: 5587 Number failing in both: 838 Number passing in Base (4a4b143) but now fail: 4 Number failing in Base (4a4b143) but now pass: 0 Click here to see
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like there's a slight regression in some conformance tests. Could take a brief look at those
They are changes to static analysis tests. In making ion data lazy, the ion parsing is no longer happening at a time that triggers the failure for these tests. e.g.,
No longer immediately errors, since the |
Merges the following previously PRed changes to
main
:Value
into a module. #509Also fixes a few minor lifetime warnings from newer versions of rust/clippy.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.