-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[5.1][Parse/Syntax] Changes for string literal parsing #24846
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
Merged
rintaro
merged 13 commits into
swiftlang:swift-5.1-branch
from
rintaro:5.1-parse-stringliteral-syntax
May 17, 2019
Merged
[5.1][Parse/Syntax] Changes for string literal parsing #24846
rintaro
merged 13 commits into
swiftlang:swift-5.1-branch
from
rintaro:5.1-parse-stringliteral-syntax
May 17, 2019
Conversation
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
(cherry picked from commit 5debb92)
(cherry picked from commit b583fef)
(cherry picked from commit ef413e4)
(cherry picked from commit 9155ed8)
(cherry picked from commit a7d33aa)
(cherry picked from commit b3a4ab6)
Fix incorrect indent (cherry picked from commit e09a341)
There were a number of mistakes in this test: • The whole thing was indented one space. • Some fix-it tests were malformed and therefore not being tested. • The output checking could in theory allow content before or after the intended content. (cherry picked from commit 59d2fea)
This defers diagnosis until a stage where #if conditions have definitely been evaluated, at the cost of a slightly more complex implementation. We’ll gain some of that complexity back in a subsequent refactoring. Fixes SR-9937. (cherry picked from commit a4e5bce)
Now that we manipulate the argument list to correct strange interpolations in Sema, we can parse interpolations directly as argument lists, simplifying the parser. By itself, this refactoring causes a code completion regression; a subsequent commit will fix that. (cherry picked from commit da74978)
This change permits UnresolvedDotExpr to have both a name and a base that are implicit, but a valid DotLoc, and to treat that DotLoc as the node’s location. It then changes the generation of string interpolation code so that `$stringInterpolation.appendInterpolation` references have a DotLoc corresponding to the backslash in the string literal. This makes it possible for `ExprContextAnalyzer` in IDE to correctly detect when you are code-completing in a string interpolation and treat it as an `appendInterpolation` call. (cherry picked from commit 4f1e05c)
(cherry picked from commit b0f6168) Conflicts: test/Syntax/Outputs/round_trip_parse_gen.swift.withkinds test/Syntax/round_trip_parse_gen.swift
swiftlang/swift-syntax#125 |
beccadax
approved these changes
May 16, 2019
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.
Cherry pick recent changes for string literal parsing and libSyntax related to string literals.
Resolves #52869