@@ -126,18 +126,18 @@ class ExportSwift {
126
126
guard let jsAttribute = node. attributes. firstJSAttribute else {
127
127
return nil
128
128
}
129
-
129
+
130
130
let name = node. name. text
131
131
let namespace = extractNamespace ( from: jsAttribute)
132
-
132
+
133
133
if namespace != nil , case . classBody = state {
134
134
diagnose (
135
135
node: jsAttribute,
136
136
message: " Namespace is only needed in top-level declaration " ,
137
137
hint: " Remove the namespace from @JS attribute or move this function to top-level "
138
138
)
139
139
}
140
-
140
+
141
141
var parameters : [ Parameter ] = [ ]
142
142
for param in node. signature. parameterClause. parameters {
143
143
guard let type = self . parent. lookupType ( for: param. type) else {
@@ -204,14 +204,15 @@ class ExportSwift {
204
204
}
205
205
return Effects ( isAsync: isAsync, isThrows: isThrows)
206
206
}
207
-
207
+
208
208
private func extractNamespace(
209
209
from jsAttribute: AttributeSyntax
210
210
) -> [ String ] ? {
211
211
guard let arguments = jsAttribute. arguments? . as ( LabeledExprListSyntax . self) ,
212
- let firstArg = arguments. first? . expression. as ( StringLiteralExprSyntax . self) ,
213
- let namespaceString = firstArg. segments. first? . as ( StringSegmentSyntax . self) ? . content. text else {
214
- return nil
212
+ let firstArg = arguments. first? . expression. as ( StringLiteralExprSyntax . self) ,
213
+ let namespaceString = firstArg. segments. first? . as ( StringSegmentSyntax . self) ? . content. text
214
+ else {
215
+ return nil
215
216
}
216
217
return namespaceString. split ( separator: " . " ) . map ( String . init)
217
218
}
@@ -222,17 +223,18 @@ class ExportSwift {
222
223
diagnose ( node: node, message: " @JS init must be inside a @JS class " )
223
224
return . skipChildren
224
225
}
225
-
226
+
226
227
if let jsAttribute = node. attributes. firstJSAttribute,
227
- let namespace = extractNamespace ( from: jsAttribute) ,
228
- namespace != nil {
228
+ let namespace = extractNamespace ( from: jsAttribute) ,
229
+ namespace != nil
230
+ {
229
231
diagnose (
230
232
node: jsAttribute,
231
233
message: " Namespace is not supported for initializer declarations " ,
232
234
hint: " Remove the namespace from @JS attribute "
233
235
)
234
236
}
235
-
237
+
236
238
var parameters : [ Parameter ] = [ ]
237
239
for param in node. signature. parameterClause. parameters {
238
240
guard let type = self . parent. lookupType ( for: param. type) else {
@@ -259,7 +261,7 @@ class ExportSwift {
259
261
260
262
override func visit( _ node: ClassDeclSyntax ) -> SyntaxVisitorContinueKind {
261
263
let name = node. name. text
262
-
264
+
263
265
stateStack. push ( state: . classBody( name: name) )
264
266
265
267
guard let jsAttribute = node. attributes. firstJSAttribute else { return . skipChildren }
@@ -675,7 +677,7 @@ extension AttributeListSyntax {
675
677
fileprivate func hasJSAttribute( ) -> Bool {
676
678
firstJSAttribute != nil
677
679
}
678
-
680
+
679
681
fileprivate var firstJSAttribute : AttributeSyntax ? {
680
682
first ( where: {
681
683
$0. as ( AttributeSyntax . self) ? . attributeName. trimmedDescription == " JS "
0 commit comments