@@ -44,70 +44,80 @@ public protocol SyntaxParseable: SyntaxProtocol {
4444extension DeclSyntax : SyntaxParseable {
4545 public static func parse( from parser: inout Parser ) -> Self {
4646 let node = parser. parseDeclaration ( )
47- return parser. parseRemainder ( into: node) . syntax
47+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
48+ return Syntax ( raw: raw) . cast ( Self . self)
4849 }
4950}
5051
5152extension ExprSyntax : SyntaxParseable {
5253 public static func parse( from parser: inout Parser ) -> Self {
5354 let node = parser. parseExpression ( )
54- return parser. parseRemainder ( into: node) . syntax
55+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
56+ return Syntax ( raw: raw) . cast ( Self . self)
5557 }
5658}
5759
5860extension StmtSyntax : SyntaxParseable {
5961 public static func parse( from parser: inout Parser ) -> Self {
6062 let node = parser. parseStatement ( )
61- return parser. parseRemainder ( into: node) . syntax
63+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
64+ return Syntax ( raw: raw) . cast ( Self . self)
6265 }
6366}
6467
6568extension TypeSyntax : SyntaxParseable {
6669 public static func parse( from parser: inout Parser ) -> Self {
6770 let node = parser. parseType ( )
68- return parser. parseRemainder ( into: node) . syntax
71+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
72+ return Syntax ( raw: raw) . cast ( Self . self)
6973 }
7074}
7175
7276extension PatternSyntax : SyntaxParseable {
7377 public static func parse( from parser: inout Parser ) -> Self {
7478 let node = parser. parsePattern ( )
75- return parser. parseRemainder ( into: node) . syntax
79+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
80+ return Syntax ( raw: raw) . cast ( Self . self)
7681 }
7782}
7883
7984extension MemberDeclBlockSyntax : SyntaxParseable {
8085 public static func parse( from parser: inout Parser ) -> Self {
8186 let node = parser. parseMemberDeclList ( )
82- return parser. parseRemainder ( into: node) . syntax
87+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
88+ return Syntax ( raw: raw) . cast ( Self . self)
8389 }
8490}
8591
8692extension SourceFileSyntax : SyntaxParseable {
8793 public static func parse( from parser: inout Parser ) -> Self {
8894 let node = parser. parseSourceFile ( )
89- return parser. parseRemainder ( into: node) . syntax
95+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
96+ return Syntax ( raw: raw) . cast ( Self . self)
9097 }
9198}
9299
93100extension SwitchCaseSyntax : SyntaxParseable {
94101 public static func parse( from parser: inout Parser ) -> Self {
95102 let node = parser. parseSwitchCase ( )
96- return parser. parseRemainder ( into: node) . syntax
103+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
104+ return Syntax ( raw: raw) . cast ( Self . self)
97105 }
98106}
99107
100108extension CatchClauseSyntax : SyntaxParseable {
101109 public static func parse( from parser: inout Parser ) -> Self {
102110 let node = parser. parseCatchClause ( )
103- return parser. parseRemainder ( into: node) . syntax
111+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
112+ return Syntax ( raw: raw) . cast ( Self . self)
104113 }
105114}
106115
107116extension GenericParameterClauseSyntax : SyntaxParseable {
108117 public static func parse( from parser: inout Parser ) -> Self {
109118 let node = parser. parseGenericParameters ( )
110- return parser. parseRemainder ( into: node) . syntax
119+ let raw = RawSyntax ( parser. parseRemainder ( into: node) )
120+ return Syntax ( raw: raw) . cast ( Self . self)
111121 }
112122}
113123
0 commit comments