Skip to content

[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

Conversation

rintaro
Copy link
Member

@rintaro rintaro commented May 16, 2019

kitasuke and others added 13 commits May 16, 2019 14:21
…al""

This reverts commit 18dd11a.

(cherry picked from commit 94815fa)
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
@rintaro
Copy link
Member Author

rintaro commented May 16, 2019

swiftlang/swift-syntax#125
@swift-ci Please test

@rintaro rintaro merged commit b4c60e8 into swiftlang:swift-5.1-branch May 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants