mirror of
https://github.com/apple/swift.git
synced 2026-06-20 15:42:51 +02:00
0924981eab
This change adds support for raw identifiers when renaming APIs in Swift. This includes APIs defined in Swift (using the `@availability(..., renamed: ...)` attribute), as well as C/Objective-C (using either the `swift_name` attribute or APINotes). All of these take decl names as strings, and so the parsing for these requires that any decl name components (the base name or the argument labels) must have surrounding backticks in order to be treated correctly as a raw identifier. Getting this working required some refactoring of `ParsedDeclName` since it previously assumed that it could just split around delimiters like `.`, `(`, and `:`. That's no longer guaranteed to work, so I've introduced backtick-aware split helpers to deal with this. Likewise, `ParsedDeclName` now keeps track of special decl base names (like `init` and `subscript`) to ensure that they're handled properly and not incorrectly escaped under the new logic.