@@ -127,7 +127,8 @@ class ExportSwift {
127127 return nil
128128 }
129129
130- let ( name, namespace) = extractNameAndNamespace ( from: node, jsAttribute: jsAttribute)
130+ let name = node. name. text
131+ let namespace = extractNamespace ( from: jsAttribute)
131132
132133 var parameters : [ Parameter ] = [ ]
133134 for param in node. signature. parameterClause. parameters {
@@ -196,17 +197,15 @@ class ExportSwift {
196197 return Effects ( isAsync: isAsync, isThrows: isThrows)
197198 }
198199
199- private func extractNameAndNamespace(
200- from node: FunctionDeclSyntax ,
201- jsAttribute: AttributeSyntax
202- ) -> ( name: String , namespace: [ String ] ? ) {
200+ private func extractNamespace(
201+ from jsAttribute: AttributeSyntax
202+ ) -> [ String ] ? {
203203 guard let arguments = jsAttribute. arguments? . as ( LabeledExprListSyntax . self) ,
204204 let firstArg = arguments. first? . expression. as ( StringLiteralExprSyntax . self) ,
205205 let namespaceString = firstArg. segments. first? . as ( StringSegmentSyntax . self) ? . content. text else {
206- return ( node . name . text , nil )
206+ return nil
207207 }
208- let namespaces = namespaceString. split ( separator: " . " ) . map ( String . init)
209- return ( node. name. text, namespaces)
208+ return namespaceString. split ( separator: " . " ) . map ( String . init)
210209 }
211210
212211 override func visit( _ node: InitializerDeclSyntax ) -> SyntaxVisitorContinueKind {
@@ -241,15 +240,17 @@ class ExportSwift {
241240
242241 override func visit( _ node: ClassDeclSyntax ) -> SyntaxVisitorContinueKind {
243242 let name = node. name. text
243+
244244 stateStack. push ( state: . classBody( name: name) )
245245
246- guard node. attributes. hasJSAttribute ( ) else { return . skipChildren }
247-
246+ guard let jsAttribute = node. attributes. firstJSAttribute else { return . skipChildren }
247+
248+ let namespace = extractNamespace ( from: jsAttribute)
248249 exportedClassByName [ name] = ExportedClass (
249250 name: name,
250251 constructor: nil ,
251252 methods: [ ] ,
252- namespace: nil
253+ namespace: namespace
253254 )
254255 exportedClassNames. append ( name)
255256 return . visitChildren
0 commit comments