@@ -973,8 +973,6 @@ extension Parser {
973
973
/// primary-expression → implicit-member-expression
974
974
/// primary-expression → wildcard-expression
975
975
/// primary-expression → key-path-expression
976
- /// primary-expression → selector-expression
977
- /// primary-expression → key-path-string-expression
978
976
/// primary-expression → macro-expansion-expression
979
977
@_spi ( RawSyntax)
980
978
public mutating func parsePrimaryExpression(
@@ -1081,11 +1079,6 @@ extension Parser {
1081
1079
self . parseMacroExpansionExpr ( pattern: pattern, flavor: flavor)
1082
1080
)
1083
1081
1084
- case ( . poundSelectorKeyword, _) ? :
1085
- return RawExprSyntax ( self . parseObjectiveCSelectorLiteral ( ) )
1086
- case ( . poundKeyPathKeyword, _) ? :
1087
- return RawExprSyntax ( self . parseObjectiveCKeyPathExpression ( ) )
1088
-
1089
1082
case ( . leftBrace, _) ? : // expr-closure
1090
1083
return RawExprSyntax ( self . parseClosureExpression ( ) )
1091
1084
case ( . period, let handle) ? , //=.foo
@@ -1653,53 +1646,6 @@ extension Parser {
1653
1646
}
1654
1647
}
1655
1648
1656
- extension Parser {
1657
- /// Parse an Objective-C #keypath literal.
1658
- ///
1659
- /// Grammar
1660
- /// =======
1661
- ///
1662
- /// key-path-string-expression → '#keyPath' '(' expression ')'
1663
- @_spi ( RawSyntax)
1664
- public mutating func parseObjectiveCKeyPathExpression( ) -> RawObjcKeyPathExprSyntax {
1665
- let ( unexpectedBeforeKeyword, keyword) = self . expect ( . poundKeyPathKeyword)
1666
- // Parse the leading '('.
1667
- let ( unexpectedBeforeLParen, lparen) = self . expect ( . leftParen)
1668
-
1669
- // Parse the sequence of unqualified-names.
1670
- var elements = [ RawObjcNamePieceSyntax] ( )
1671
- do {
1672
- var flags : DeclNameOptions = [ ]
1673
- var keepGoing : RawTokenSyntax ? = nil
1674
- var loopProgress = LoopProgressCondition ( )
1675
- repeat {
1676
- // Parse the next name.
1677
- let ( name, args) = self . parseDeclNameRef ( flags)
1678
- assert ( args == nil , " Found arguments but did not pass argument flag? " )
1679
-
1680
- // After the first component, we can start parsing keywords.
1681
- flags. formUnion ( . keywords)
1682
-
1683
- // Parse the next period to continue the path.
1684
- keepGoing = self . consume ( if: . period)
1685
- elements. append ( RawObjcNamePieceSyntax (
1686
- name: name, dot: keepGoing, arena: self . arena) )
1687
- } while keepGoing != nil && loopProgress. evaluate ( currentToken)
1688
- }
1689
-
1690
- // Parse the closing ')'.
1691
- let ( unexpectedBeforeRParen, rparen) = self . expect ( . rightParen)
1692
- return RawObjcKeyPathExprSyntax (
1693
- unexpectedBeforeKeyword,
1694
- keyPath: keyword,
1695
- unexpectedBeforeLParen,
1696
- leftParen: lparen,
1697
- name: RawObjcNameSyntax ( elements: elements, arena: self . arena) ,
1698
- unexpectedBeforeRParen,
1699
- rightParen: rparen, arena: self . arena)
1700
- }
1701
- }
1702
-
1703
1649
extension Parser {
1704
1650
/// Parse a 'super' reference to the superclass instance of a class.
1705
1651
///
@@ -1925,48 +1871,6 @@ extension Parser {
1925
1871
}
1926
1872
}
1927
1873
1928
- extension Parser {
1929
- /// Parse a #selector expression.
1930
- ///
1931
- /// Grammar
1932
- /// =======
1933
- ///
1934
- /// selector-expression → '#selector' '(' expression )
1935
- /// selector-expression → '#selector' '(' 'getter' ':' expression ')'
1936
- /// selector-expression → '#selector' '(' 'setter' ':' expression ')'
1937
- @_spi ( RawSyntax)
1938
- public mutating func parseObjectiveCSelectorLiteral( ) -> RawObjcSelectorExprSyntax {
1939
- // Consume '#selector'.
1940
- let ( unexpectedBeforeSelector, selector) = self . expect ( . poundSelectorKeyword)
1941
- // Parse the leading '('.
1942
- let ( unexpectedBeforeLParen, lparen) = self . expect ( . leftParen)
1943
-
1944
- // Parse possible 'getter:' or 'setter:' modifiers, and determine
1945
- // the kind of selector we're working with.
1946
- let kindAndColon = self . consume (
1947
- if: { $0. isContextualKeyword ( [ " getter " , " setter " ] ) } ,
1948
- followedBy: { $0. tokenKind == . colon }
1949
- )
1950
- let ( kind, colon) = ( kindAndColon? . 0 , kindAndColon? . 1 )
1951
-
1952
- // Parse the subexpression.
1953
- let subexpr = self . parseExpression ( )
1954
- // Parse the closing ')'.
1955
- let ( unexpectedBeforeRParen, rparen) = self . expect ( . rightParen)
1956
- return RawObjcSelectorExprSyntax (
1957
- unexpectedBeforeSelector,
1958
- poundSelector: selector,
1959
- unexpectedBeforeLParen,
1960
- leftParen: lparen,
1961
- kind: kind,
1962
- colon: colon,
1963
- name: subexpr,
1964
- unexpectedBeforeRParen,
1965
- rightParen: rparen,
1966
- arena: self . arena)
1967
- }
1968
- }
1969
-
1970
1874
extension Parser {
1971
1875
/// Parse a closure expression.
1972
1876
///
0 commit comments