Conversation
Contributor
Author
bgw
approved these changes
Jun 15, 2022
Contributor
bgw
left a comment
There was a problem hiding this comment.
LGTM. Thanks for fixing!
I think we could greatly reduce the number of bugs here if we stopped splitting f-strings, and instead recursively ran the parser, like CPython does. But that would involve a bigger architectural change.
| self.text_pos.next(); | ||
| } | ||
| } else { | ||
| } else if let Some( |
Contributor
There was a problem hiding this comment.
Nice, this syntax was finally added in Rust 1.53.0: https://blog.rust-lang.org/2021/06/17/Rust-1.53.0.html#or-patterns
We could probably clean up the rest of the tokenizer to use this more compact match format.
Contributor
Author
|
Agreed on both counts. Thanks for taking a look |
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this pull request
Sep 16, 2022
0.4.7 - 2022-07-12 Fixed * Fix get_qualified_names_for matching on prefixes of the given name by @lpetre in Instagram/LibCST#719 Added * Implement lazy loading mechanism for expensive metadata providers by @Chenguang-Zhu in Instagram/LibCST#720 0.4.6 - 2022-07-04 New Contributors - @superbobry made their first contribution in Instagram/LibCST#702 Fixed - convert_type_comments now preserves comments following type comments by @superbobry in Instagram/LibCST#702 - QualifiedNameProvider optimizations - Cache the scope name prefix to prevent scope traversal in a tight loop by @lpetre in Instagram/LibCST#708 - Faster qualified name formatting by @lpetre in Instagram/LibCST#710 - Prevent unnecessary work in Scope.get_qualified_names_for_ by @lpetre in Instagram/LibCST#709 - Fix parsing of parenthesized empty tuples by @zsol in Instagram/LibCST#712 - Support whitespace after ParamSlash by @zsol in Instagram/LibCST#713 - [parser] bail on deeply nested expressions by @zsol in Instagram/LibCST#718 0.4.5 - 2022-06-17 New Contributors - @zzl0 made their first contribution in Instagram/LibCST#704 Fixed - Only skip supported escaped characters in f-strings by @zsol in Instagram/LibCST#700 - Escaping quote characters in raw string literals causes a tokenizer error by @zsol in Instagram/LibCST#668 - Corrected a code example in the documentation by @zzl0 in Instagram/LibCST#703 - Handle multiline strings that start with quotes by @zzl0 in Instagram/LibCST#704 - Fixed a performance regression in libcst.metadata.ScopeProvider by @lpetre in Instagram/LibCST#698 0.4.4 - 2022-06-13 New Contributors - @adamchainz made their first contribution in Instagram/LibCST#688 Added - Add package links to PyPI by @adamchainz in Instagram/LibCST#688 - native: add overall benchmark by @zsol in Instagram/LibCST#692 - Add support for PEP-646 by @zsol in Instagram/LibCST#696 Updated - parser: use references instead of smart pointers for Tokens by @zsol in Instagram/LibCST#691
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.
Summary
When tokenizing f-strings, we should only skip characters that are allowed to be escaped (spec).
Fixes #699
Test Plan
Added test cases.