diff --git a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift index 31f640fef..c2d33835c 100644 --- a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift +++ b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift @@ -269,15 +269,24 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { } override func visit(_ node: ActorDeclSyntax) -> SyntaxVisitorContinueKind { - return visitTypeOrExtensionDecl(node, typeNames: [node.name.text]) + guard let identifier = node.name.identifier else { + return .skipChildren + } + return visitTypeOrExtensionDecl(node, typeNames: [identifier.name]) } override func visit(_ node: ClassDeclSyntax) -> SyntaxVisitorContinueKind { - return visitTypeOrExtensionDecl(node, typeNames: [node.name.text]) + guard let identifier = node.name.identifier else { + return .skipChildren + } + return visitTypeOrExtensionDecl(node, typeNames: [identifier.name]) } override func visit(_ node: EnumDeclSyntax) -> SyntaxVisitorContinueKind { - return visitTypeOrExtensionDecl(node, typeNames: [node.name.text]) + guard let identifier = node.name.identifier else { + return .skipChildren + } + return visitTypeOrExtensionDecl(node, typeNames: [identifier.name]) } override func visit(_ node: ExtensionDeclSyntax) -> SyntaxVisitorContinueKind { @@ -289,7 +298,10 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { } override func visit(_ node: StructDeclSyntax) -> SyntaxVisitorContinueKind { - return visitTypeOrExtensionDecl(node, typeNames: [node.name.text]) + guard let identifier = node.name.identifier else { + return .skipChildren + } + return visitTypeOrExtensionDecl(node, typeNames: [identifier.name]) } override func visit(_ node: FunctionDeclSyntax) -> SyntaxVisitorContinueKind { @@ -297,7 +309,7 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { .compactMap { $0.as(AttributeSyntax.self) } .first { $0.isNamed("Test", inModuleNamed: "Testing") } - guard let testAttribute else { + guard let testAttribute, let identifier = node.name.identifier else { return .skipChildren } let attributeData = TestingAttributeData(attribute: testAttribute) @@ -305,8 +317,10 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { return .skipChildren } - let name = - node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName.text):" }.joined() + ")" + let parameters = node.signature.parameterClause.parameters.map { + "\($0.firstName.identifier?.name ?? $0.firstName.text):" + }.joined() + let name = "\(identifier.name)(\(parameters))" let range = snapshot.absolutePositionRange( of: node.positionAfterSkippingLeadingTrivia..