|
7 | 7 | // |
8 | 8 | // Permission is hereby granted, free of charge, to any person |
9 | 9 | // obtaining a copy of this software and associated documentation |
10 | | -// files (the “Software”), to deal in the Software without |
| 10 | +// files (the "Software"), to deal in the Software without |
11 | 11 | // restriction, including without limitation the rights to use, |
12 | 12 | // copy, modify, merge, publish, distribute, sublicense, and/or |
13 | 13 | // sell copies of the Software, and to permit persons to whom the |
|
17 | 17 | // The above copyright notice and this permission notice shall be |
18 | 18 | // included in all copies or substantial portions of the Software. |
19 | 19 | // |
20 | | -// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, |
| 20 | +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
21 | 21 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
22 | 22 | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
23 | 23 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
@@ -81,93 +81,3 @@ public struct Tuple: CodeBlock { |
81 | 81 | return tupleExpr |
82 | 82 | } |
83 | 83 | } |
84 | | - |
85 | | -/// A tuple pattern for switch cases. |
86 | | -public struct TuplePattern: PatternConvertible { |
87 | | - private let elements: [PatternConvertible?] |
88 | | - |
89 | | - internal init(elements: [PatternConvertible?]) { |
90 | | - self.elements = elements |
91 | | - } |
92 | | - |
93 | | - public var patternSyntax: PatternSyntax { |
94 | | - let patternElements = TuplePatternElementListSyntax( |
95 | | - elements.enumerated().map { index, element in |
96 | | - let patternElement: TuplePatternElementSyntax |
97 | | - if let element = element { |
98 | | - patternElement = TuplePatternElementSyntax( |
99 | | - label: nil, |
100 | | - colon: nil, |
101 | | - pattern: element.patternSyntax, |
102 | | - trailingComma: index < elements.count - 1 ? .commaToken(trailingTrivia: .space) : nil |
103 | | - ) |
104 | | - } else { |
105 | | - // Wildcard pattern |
106 | | - patternElement = TuplePatternElementSyntax( |
107 | | - label: nil, |
108 | | - colon: nil, |
109 | | - pattern: PatternSyntax(WildcardPatternSyntax(wildcard: .wildcardToken())), |
110 | | - trailingComma: index < elements.count - 1 ? .commaToken(trailingTrivia: .space) : nil |
111 | | - ) |
112 | | - } |
113 | | - return patternElement |
114 | | - } |
115 | | - ) |
116 | | - |
117 | | - return PatternSyntax( |
118 | | - TuplePatternSyntax( |
119 | | - leftParen: .leftParenToken(), |
120 | | - elements: patternElements, |
121 | | - rightParen: .rightParenToken() |
122 | | - ) |
123 | | - ) |
124 | | - } |
125 | | -} |
126 | | - |
127 | | -/// A tuple pattern that can be used as a CodeBlock for for-in loops. |
128 | | -public struct TuplePatternCodeBlock: CodeBlock, PatternConvertible { |
129 | | - private let elements: [PatternConvertible?] |
130 | | - |
131 | | - internal init(elements: [PatternConvertible?]) { |
132 | | - self.elements = elements |
133 | | - } |
134 | | - |
135 | | - public var patternSyntax: PatternSyntax { |
136 | | - let patternElements = TuplePatternElementListSyntax( |
137 | | - elements.enumerated().map { index, element in |
138 | | - let patternElement: TuplePatternElementSyntax |
139 | | - if let element = element { |
140 | | - patternElement = TuplePatternElementSyntax( |
141 | | - label: nil, |
142 | | - colon: nil, |
143 | | - pattern: element.patternSyntax, |
144 | | - trailingComma: index < elements.count - 1 ? .commaToken(trailingTrivia: .space) : nil |
145 | | - ) |
146 | | - } else { |
147 | | - // Wildcard pattern |
148 | | - patternElement = TuplePatternElementSyntax( |
149 | | - label: nil, |
150 | | - colon: nil, |
151 | | - pattern: PatternSyntax(WildcardPatternSyntax(wildcard: .wildcardToken())), |
152 | | - trailingComma: index < elements.count - 1 ? .commaToken(trailingTrivia: .space) : nil |
153 | | - ) |
154 | | - } |
155 | | - return patternElement |
156 | | - } |
157 | | - ) |
158 | | - |
159 | | - return PatternSyntax( |
160 | | - TuplePatternSyntax( |
161 | | - leftParen: .leftParenToken(), |
162 | | - elements: patternElements, |
163 | | - rightParen: .rightParenToken() |
164 | | - ) |
165 | | - ) |
166 | | - } |
167 | | - |
168 | | - public var syntax: SyntaxProtocol { |
169 | | - // For CodeBlock conformance, we return the pattern syntax as an expression |
170 | | - // This is a bit of a hack, but it allows us to use TuplePatternCodeBlock in For loops |
171 | | - patternSyntax |
172 | | - } |
173 | | -} |
0 commit comments