File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -558,6 +558,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
558558 // an empty `block`.
559559 rule!(
560560 ( functionDecl
561+ modifiers: _* @mods
561562 name: @name
562563 genericParameterClause: ( genericParameterClause parameters: _* @type_params) ?
563564 signature: ( functionSignature
@@ -566,6 +567,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
566567 body: ( codeBlock statements: _* @body) )
567568 =>
568569 ( function_declaration
570+ modifier: { mods}
569571 name_node: ( identifier #{ name} )
570572 type_parameter: { type_params}
571573 parameter: { params}
@@ -574,13 +576,15 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
574576 ) ,
575577 rule!(
576578 ( functionDecl
579+ modifiers: _* @mods
577580 name: @name
578581 genericParameterClause: ( genericParameterClause parameters: _* @type_params) ?
579582 signature: ( functionSignature
580583 parameterClause: ( functionParameterClause parameters: _* @params)
581584 returnClause: ( returnClause type : @ret) ?) )
582585 =>
583586 ( function_declaration
587+ modifier: { mods}
584588 name_node: ( identifier #{ name} )
585589 type_parameter: { type_params}
586590 parameter: { params}
Original file line number Diff line number Diff line change @@ -75,6 +75,7 @@ top_level
7575 type: unsupported_node "~Copyable"
7676 member:
7777 function_declaration
78+ modifier: modifier "consuming"
7879 name_node: identifier "close"
7980 body:
8081 block
Original file line number Diff line number Diff line change 1+ class Factory {
2+ class func make() {}
3+ }
4+
5+ ---
6+
7+ sourceFile
8+ endOfFileToken: endOfFile
9+ statements:
10+ codeBlockItem
11+ item:
12+ classDecl
13+ attributes:
14+ name: identifier "Factory"
15+ memberBlock:
16+ memberBlock
17+ leftBrace: {
18+ rightBrace: }
19+ members:
20+ memberBlockItem
21+ decl:
22+ functionDecl
23+ attributes:
24+ body:
25+ codeBlock
26+ leftBrace: {
27+ rightBrace: }
28+ statements:
29+ name: identifier "make"
30+ modifiers:
31+ declModifier
32+ name: class
33+ signature:
34+ functionSignature
35+ parameterClause:
36+ functionParameterClause
37+ leftParen: (
38+ rightParen: )
39+ parameters:
40+ funcKeyword: func
41+ modifiers:
42+ classKeyword: class
43+
44+ ---
45+
46+ top_level
47+ body:
48+ block
49+ stmt:
50+ class_like_declaration
51+ modifier: modifier "class"
52+ name_node: identifier "Factory"
53+ member:
54+ function_declaration
55+ modifier: modifier "class"
56+ name_node: identifier "make"
57+ body: block "class func make() {}"
Original file line number Diff line number Diff line change 1+ class Factory {
2+ class func make( ) { }
3+ }
Original file line number Diff line number Diff line change 11protocol Drawable {
22 func draw()
3+ static func make()
34}
45
56---
@@ -31,6 +32,22 @@ sourceFile
3132 rightParen: )
3233 parameters:
3334 funcKeyword: func
35+ memberBlockItem
36+ decl:
37+ functionDecl
38+ attributes:
39+ name: identifier "make"
40+ modifiers:
41+ declModifier
42+ name: static
43+ signature:
44+ functionSignature
45+ parameterClause:
46+ functionParameterClause
47+ leftParen: (
48+ rightParen: )
49+ parameters:
50+ funcKeyword: func
3451 modifiers:
3552 protocolKeyword: protocol
3653
@@ -47,3 +64,7 @@ top_level
4764 function_declaration
4865 name_node: identifier "draw"
4966 body: block "func draw()"
67+ function_declaration
68+ modifier: modifier "static"
69+ name_node: identifier "make"
70+ body: block "static func make()"
Original file line number Diff line number Diff line change 11protocol Drawable {
22 func draw( )
3+ static func make( )
34}
Original file line number Diff line number Diff line change 1+ class Factory {
2+ static func make() {}
3+ }
4+
5+ ---
6+
7+ sourceFile
8+ endOfFileToken: endOfFile
9+ statements:
10+ codeBlockItem
11+ item:
12+ classDecl
13+ attributes:
14+ name: identifier "Factory"
15+ memberBlock:
16+ memberBlock
17+ leftBrace: {
18+ rightBrace: }
19+ members:
20+ memberBlockItem
21+ decl:
22+ functionDecl
23+ attributes:
24+ body:
25+ codeBlock
26+ leftBrace: {
27+ rightBrace: }
28+ statements:
29+ name: identifier "make"
30+ modifiers:
31+ declModifier
32+ name: static
33+ signature:
34+ functionSignature
35+ parameterClause:
36+ functionParameterClause
37+ leftParen: (
38+ rightParen: )
39+ parameters:
40+ funcKeyword: func
41+ modifiers:
42+ classKeyword: class
43+
44+ ---
45+
46+ top_level
47+ body:
48+ block
49+ stmt:
50+ class_like_declaration
51+ modifier: modifier "class"
52+ name_node: identifier "Factory"
53+ member:
54+ function_declaration
55+ modifier: modifier "static"
56+ name_node: identifier "make"
57+ body: block "static func make() {}"
Original file line number Diff line number Diff line change 1+ class Factory {
2+ static func make( ) { }
3+ }
You can’t perform that action at this time.
0 commit comments