@@ -314,6 +314,21 @@ public extension Syntax {
314
314
% else :
315
315
return . ${ node. swift_syntax_kind} ( ${ node. name} ( self ) !)
316
316
% end
317
+ % end
318
+ }
319
+ }
320
+
321
+ /// Retrieve the concretely typed node that this Syntax node wraps.
322
+ /// This property is exposed for testing purposes only.
323
+ var _asConcreteType : Any {
324
+ switch self . asSyntaxEnum {
325
+ case . token( let node) :
326
+ return node
327
+ case . unknown( let node) :
328
+ return node
329
+ % for node in SYNTAX_NODES:
330
+ case . ${ node. swift_syntax_kind} ( let node) :
331
+ return node
317
332
% end
318
333
}
319
334
}
@@ -323,7 +338,7 @@ extension Syntax: CustomReflectable {
323
338
/// Reconstructs the real syntax type for this type from the node's kind and
324
339
/// provides a mirror that reflects this type.
325
340
public var customMirror: Mirror {
326
- return Mirror ( reflecting: self . asConcreteType )
341
+ return Mirror ( reflecting: self . _asConcreteType )
327
342
}
328
343
}
329
344
@@ -333,7 +348,7 @@ extension ${node.name}: CustomReflectable {
333
348
/// Reconstructs the real syntax type for this type from the node's kind and
334
349
/// provides a mirror that reflects this type.
335
350
public var customMirror : Mirror {
336
- return Mirror ( reflecting: Syntax ( self ) . asConcreteType )
351
+ return Mirror ( reflecting: Syntax ( self ) . _asConcreteType )
337
352
}
338
353
}
339
354
% elif node. is_syntax_collection( ) :
@@ -344,9 +359,9 @@ extension ${node.name}: CustomReflectable {
344
359
return Mirror ( self , children: [
345
360
% for child in node. children:
346
361
% if child. is_optional:
347
- " ${child.swift_name} " : ${ child. swift_name} . map ( Syntax . init) ? . asConcreteType as Any ,
362
+ " ${child.swift_name} " : ${ child. swift_name} . map ( Syntax . init) ? . _asConcreteType as Any ,
348
363
% else :
349
- " ${child.swift_name} " : Syntax ( ${ child. swift_name} ) . asConcreteType ,
364
+ " ${child.swift_name} " : Syntax ( ${ child. swift_name} ) . _asConcreteType ,
350
365
% end
351
366
% end
352
367
] )
0 commit comments