@@ -474,20 +474,14 @@ extension PathHierarchy.PathParser {
474
474
return PathComponent ( full: String ( original) , name: name, disambiguation: . typeSignature( parameterTypes: parameterTypes, returnTypes: nil ) )
475
475
} else if scanner. hasPrefix ( " -> " ) {
476
476
_ = scanner. take ( 2 )
477
- let returnTypes = scanner. scanArguments ( ) // The return types (tuple or not) can be parsed the same as the arguments
477
+ let returnTypes = scanner. scanReturnTypes ( )
478
478
return PathComponent ( full: String ( original) , name: name, disambiguation: . typeSignature( parameterTypes: parameterTypes, returnTypes: returnTypes) )
479
479
}
480
480
} else if let parameterStartRange = possibleDisambiguationText. range ( of: " -> " ) {
481
481
let name = original [ ..< parameterStartRange. lowerBound]
482
482
var scanner = StringScanner ( original [ parameterStartRange. upperBound... ] )
483
483
484
- let returnTypes : [ Substring ]
485
- if scanner. peek ( ) == " ( " {
486
- _ = scanner. take ( ) // the leading parenthesis
487
- returnTypes = scanner. scanArguments ( ) // The return types (tuple or not) can be parsed the same as the arguments
488
- } else {
489
- returnTypes = [ scanner. takeAll ( ) ]
490
- }
484
+ let returnTypes = scanner. scanReturnTypes ( )
491
485
return PathComponent ( full: String ( original) , name: name, disambiguation: . typeSignature( parameterTypes: nil , returnTypes: returnTypes) )
492
486
}
493
487
@@ -541,6 +535,15 @@ private struct StringScanner {
541
535
542
536
// MARK: Parsing argument types by scanning
543
537
538
+ mutating func scanReturnTypes( ) -> [ Substring ] {
539
+ if peek ( ) == " ( " {
540
+ _ = take ( ) // the leading parenthesis
541
+ return scanArguments ( ) // The return types (tuple or not) can be parsed the same as the arguments
542
+ } else {
543
+ return [ takeAll ( ) ]
544
+ }
545
+ }
546
+
544
547
mutating func scanArguments( ) -> [ Substring ] {
545
548
guard peek ( ) != " ) " else {
546
549
_ = take ( ) // drop the ")"
0 commit comments