File tree 1 file changed +29
-6
lines changed
1 file changed +29
-6
lines changed Original file line number Diff line number Diff line change @@ -22,19 +22,42 @@ public struct ConvertStoredPropertyToComputed: SyntaxRefactoringProvider {
22
22
return nil
23
23
}
24
24
25
- let body = CodeBlockItemSyntax (
26
- item: . expr( initializer. value)
27
- )
25
+ let codeBlockSyntax : CodeBlockItemListSyntax
26
+
27
+ if let functionExpression = initializer. value. as ( FunctionCallExprSyntax . self) ,
28
+ let closureExpression = functionExpression. calledExpression. as ( ClosureExprSyntax . self)
29
+ {
30
+ let statements = closureExpression. statements
31
+ codeBlockSyntax =
32
+ statements
33
+ . with (
34
+ \. leadingTrivia,
35
+ functionExpression. leadingTrivia + closureExpression. leftBrace. leadingTrivia
36
+ + closureExpression. leftBrace. trailingTrivia + statements. leadingTrivia
37
+ )
38
+ . with (
39
+ \. trailingTrivia,
40
+ statements. trailingTrivia + closureExpression. trailingTrivia + closureExpression. rightBrace. leadingTrivia
41
+ + closureExpression. rightBrace. trailingTrivia + functionExpression. trailingTrivia
42
+ )
43
+ } else {
44
+ var body = CodeBlockItemListSyntax ( [
45
+ CodeBlockItemSyntax (
46
+ item: . expr( initializer. value)
47
+ )
48
+ ] )
49
+ body. leadingTrivia = initializer. equal. trailingTrivia + body. leadingTrivia
50
+ body. trailingTrivia += . space
51
+ codeBlockSyntax = body
52
+ }
28
53
29
54
let newBinding =
30
55
binding
31
56
. with ( \. initializer, nil )
32
57
. with (
33
58
\. accessorBlock,
34
59
AccessorBlockSyntax (
35
- leftBrace: . leftBraceToken( trailingTrivia: initializer. equal. trailingTrivia) ,
36
- accessors: . getter( CodeBlockItemListSyntax ( [ body] ) ) ,
37
- rightBrace: . rightBraceToken( leadingTrivia: . space)
60
+ accessors: . getter( codeBlockSyntax)
38
61
)
39
62
)
40
63
You can’t perform that action at this time.
0 commit comments