@@ -338,7 +338,7 @@ extension ASTGenVisitor {
338338 return . createParsed(
339339 self . ctx,
340340 atLoc: self . generateSourceLoc ( node. atSign) ,
341- range: self . generateSourceRange ( node) ,
341+ range: self . generateAttrSourceRange ( node) ,
342342 value: value
343343 )
344344 }
@@ -375,7 +375,7 @@ extension ASTGenVisitor {
375375 return . createParsed(
376376 self . ctx,
377377 atLoc: self . generateSourceLoc ( node. atSign) ,
378- range: self . generateSourceRange ( node) ,
378+ range: self . generateAttrSourceRange ( node) ,
379379 inverted: inverted,
380380 features: features)
381381 }
@@ -397,7 +397,7 @@ extension ASTGenVisitor {
397397 return . createParsed(
398398 self . ctx,
399399 atLoc: self . generateSourceLoc ( node. atSign) ,
400- range: self . generateSourceRange ( node) ,
400+ range: self . generateAttrSourceRange ( node) ,
401401 name: name
402402 )
403403 }
@@ -462,14 +462,14 @@ extension ASTGenVisitor {
462462 return . createParsed(
463463 self . ctx,
464464 atLoc: self . generateSourceLoc ( node. atSign) ,
465- range: self . generateSourceRange ( node) ,
465+ range: self . generateAttrSourceRange ( node) ,
466466 effectKind: effectKind
467467 )
468468 } else {
469469 return . createParsed(
470470 self . ctx,
471471 atLoc: self . generateSourceLoc ( node. atSign) ,
472- range: self . generateSourceRange ( node) ,
472+ range: self . generateAttrSourceRange ( node) ,
473473 customString: self . extractRawText ( arguments) . bridged,
474474 customStringLoc: self . generateSourceLoc ( arguments)
475475 )
@@ -493,7 +493,7 @@ extension ASTGenVisitor {
493493 return . createParsed(
494494 self . ctx,
495495 atLoc: self . generateSourceLoc ( node. atSign) ,
496- range: self . generateSourceRange ( node) ,
496+ range: self . generateAttrSourceRange ( node) ,
497497 mode: mode
498498 )
499499 }
@@ -521,7 +521,7 @@ extension ASTGenVisitor {
521521 return . createParsed(
522522 self . ctx,
523523 atLoc: self . generateSourceLoc ( node. atSign) ,
524- range: self . generateSourceRange ( node) ,
524+ range: self . generateAttrSourceRange ( node) ,
525525 name: name,
526526 kind: kind
527527 )
@@ -568,7 +568,7 @@ extension ASTGenVisitor {
568568 return . createParsed(
569569 self . ctx,
570570 atLoc: self . generateSourceLoc ( node. atSign) ,
571- range: self . generateSourceRange ( node) ,
571+ range: self . generateAttrSourceRange ( node) ,
572572 lParenLoc: self . generateSourceLoc ( node. leftParen) ,
573573 rParenLoc: self . generateSourceLoc ( node. rightParen) ,
574574 kind: kind,
@@ -587,7 +587,7 @@ extension ASTGenVisitor {
587587 return . createParsed(
588588 self . ctx,
589589 atLoc: self . generateSourceLoc ( node. atSign) ,
590- range: self . generateSourceRange ( node) ,
590+ range: self . generateAttrSourceRange ( node) ,
591591 name: name
592592 )
593593 }
@@ -608,7 +608,7 @@ extension ASTGenVisitor {
608608 return . createParsed(
609609 self . ctx,
610610 atLoc: self . generateSourceLoc ( node. atSign) ,
611- range: self . generateSourceRange ( node) ,
611+ range: self . generateAttrSourceRange ( node) ,
612612 protocolType: type,
613613 memberName: member. name,
614614 memberNameLoc: member. loc
@@ -632,7 +632,7 @@ extension ASTGenVisitor {
632632 return . createParsed(
633633 self . ctx,
634634 atLoc: self . generateSourceLoc ( node. atSign) ,
635- range: self . generateSourceRange ( node) ,
635+ range: self . generateAttrSourceRange ( node) ,
636636 kind: kind
637637 )
638638 }
@@ -799,7 +799,7 @@ extension ASTGenVisitor {
799799 return . createParsed(
800800 self . ctx,
801801 atLoc: self . generateSourceLoc ( node. atSign) ,
802- range: self . generateSourceRange ( node) ,
802+ range: self . generateAttrSourceRange ( node) ,
803803 syntax: syntax,
804804 lParenLoc: self . generateSourceLoc ( node. leftParen) ,
805805 role: role,
@@ -827,7 +827,7 @@ extension ASTGenVisitor {
827827 return . createParsed(
828828 self . ctx,
829829 atLoc: self . generateSourceLoc ( node. atSign) ,
830- range: self . generateSourceRange ( node) ,
830+ range: self . generateAttrSourceRange ( node) ,
831831 kind: kind
832832 )
833833 }
@@ -889,7 +889,7 @@ extension ASTGenVisitor {
889889 return . createParsed(
890890 self . ctx,
891891 atLoc: self . generateSourceLoc ( node. atSign) ,
892- range: self . generateSourceRange ( node) ,
892+ range: self . generateAttrSourceRange ( node) ,
893893 name: name,
894894 isEarlyAdopter: isEarlyAdopter
895895 )
@@ -907,7 +907,7 @@ extension ASTGenVisitor {
907907 return . createParsed(
908908 self . ctx,
909909 atLoc: self . generateSourceLoc ( node. atSign) ,
910- range: self . generateSourceRange ( node) ,
910+ range: self . generateAttrSourceRange ( node) ,
911911 name: name
912912 )
913913 }
@@ -930,7 +930,7 @@ extension ASTGenVisitor {
930930 return . createParsed(
931931 self . ctx,
932932 atLoc: self . generateSourceLoc ( node. atSign) ,
933- range: self . generateSourceRange ( node) ,
933+ range: self . generateAttrSourceRange ( node) ,
934934 mode: mode
935935 )
936936 }
@@ -983,7 +983,7 @@ extension ASTGenVisitor {
983983 return . createParsed(
984984 self . ctx,
985985 atLoc: self . generateSourceLoc ( node. atSign) ,
986- range: self . generateSourceRange ( node) ,
986+ range: self . generateAttrSourceRange ( node) ,
987987 name: name
988988 )
989989 }
@@ -1014,7 +1014,7 @@ extension ASTGenVisitor {
10141014 return . createParsed(
10151015 self . ctx,
10161016 atLoc: self . generateSourceLoc ( node. atSign) ,
1017- range: self . generateSourceRange ( node) ,
1017+ range: self . generateAttrSourceRange ( node) ,
10181018 kind: kind
10191019 )
10201020 }
@@ -1069,7 +1069,7 @@ extension ASTGenVisitor {
10691069 return . createParsed(
10701070 self . ctx,
10711071 atLoc: self . generateSourceLoc ( node. atSign) ,
1072- range: self . generateSourceRange ( node) ,
1072+ range: self . generateAttrSourceRange ( node) ,
10731073 name: name,
10741074 isRaw: isRaw
10751075 )
@@ -1086,7 +1086,7 @@ extension ASTGenVisitor {
10861086 return . createParsed(
10871087 self . ctx,
10881088 atLoc: self . generateSourceLoc ( node. atSign) ,
1089- range: self . generateSourceRange ( node) ,
1089+ range: self . generateAttrSourceRange ( node) ,
10901090 spiGroupName: spiName
10911091 )
10921092 }
@@ -1101,7 +1101,7 @@ extension ASTGenVisitor {
11011101 return . createParsed(
11021102 self . ctx,
11031103 atLoc: self . generateSourceLoc ( node. atSign) ,
1104- range: self . generateSourceRange ( node) ,
1104+ range: self . generateAttrSourceRange ( node) ,
11051105 name: name
11061106 )
11071107 }
@@ -1156,6 +1156,13 @@ extension ASTGenVisitor {
11561156 )
11571157 }
11581158
1159+ func generateAttrSourceRange( _ node: AttributeSyntax ) -> BridgedSourceRange {
1160+ guard let firstNameTok = node. attributeName. firstToken ( viewMode: . sourceAccurate) else {
1161+ return BridgedSourceRange ( )
1162+ }
1163+ return self . generateSourceRange ( start: firstNameTok, end: node. lastToken ( viewMode: . sourceAccurate) !)
1164+ }
1165+
11591166 func generateStringLiteralTextIfNotInterpolated( expr node: some ExprSyntaxProtocol ) -> BridgedStringRef ? {
11601167 if let segments = node. as ( SimpleStringLiteralExprSyntax . self) ? . segments {
11611168 return extractRawText ( segments) . bridged
0 commit comments