Skip to content

Commit 329e3d3

Browse files
committed
Use as(DeclSyntaxEnum.self) instead of force-unwrapping
1 parent f8d0c60 commit 329e3d3

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

Sources/SourceKitLSP/Swift/CodeActions/AddDocumentation.swift

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -99,43 +99,41 @@ extension AddDocumentation: SyntaxRefactoringCodeActionProvider {
9999

100100
extension DeclSyntax {
101101
fileprivate var parameters: FunctionParameterClauseSyntax? {
102-
switch self.syntaxNodeType {
103-
case is FunctionDeclSyntax.Type:
104-
return self.as(FunctionDeclSyntax.self)!.signature.parameterClause
105-
case is SubscriptDeclSyntax.Type:
106-
return self.as(SubscriptDeclSyntax.self)!.parameterClause
107-
case is InitializerDeclSyntax.Type:
108-
return self.as(InitializerDeclSyntax.self)!.signature.parameterClause
109-
case is MacroDeclSyntax.Type:
110-
return self.as(MacroDeclSyntax.self)!.signature.parameterClause
102+
switch self.as(DeclSyntaxEnum.self) {
103+
case .functionDecl(let functionDecl):
104+
return functionDecl.signature.parameterClause
105+
case .subscriptDecl(let subscriptDecl):
106+
return subscriptDecl.parameterClause
107+
case .initializerDecl(let initializer):
108+
return initializer.signature.parameterClause
109+
case .macroDecl(let macro):
110+
return macro.signature.parameterClause
111111
default:
112112
return nil
113113
}
114114
}
115115

116116
fileprivate var throwsKeyword: TokenSyntax? {
117-
switch self.syntaxNodeType {
118-
case is FunctionDeclSyntax.Type:
119-
return self.as(FunctionDeclSyntax.self)!.signature.effectSpecifiers?
120-
.throwsClause?.throwsSpecifier
121-
case is InitializerDeclSyntax.Type:
122-
return self.as(InitializerDeclSyntax.self)!.signature.effectSpecifiers?
123-
.throwsClause?.throwsSpecifier
117+
switch self.as(DeclSyntaxEnum.self) {
118+
case .functionDecl(let functionDecl):
119+
return functionDecl.signature.effectSpecifiers?.throwsClause?.throwsSpecifier
120+
case .initializerDecl(let initializer):
121+
return initializer.signature.effectSpecifiers?.throwsClause?.throwsSpecifier
124122
default:
125123
return nil
126124
}
127125
}
128126

129127
fileprivate var returnType: TypeSyntax? {
130-
switch self.syntaxNodeType {
131-
case is FunctionDeclSyntax.Type:
132-
return self.as(FunctionDeclSyntax.self)!.signature.returnClause?.type
133-
case is SubscriptDeclSyntax.Type:
134-
return self.as(SubscriptDeclSyntax.self)!.returnClause.type
135-
case is InitializerDeclSyntax.Type:
136-
return self.as(InitializerDeclSyntax.self)!.signature.returnClause?.type
137-
case is MacroDeclSyntax.Type:
138-
return self.as(MacroDeclSyntax.self)!.signature.returnClause?.type
128+
switch self.as(DeclSyntaxEnum.self) {
129+
case .functionDecl(let functionDecl):
130+
return functionDecl.signature.returnClause?.type
131+
case .subscriptDecl(let subscriptDecl):
132+
return subscriptDecl.returnClause.type
133+
case .initializerDecl(let initializer):
134+
return initializer.signature.returnClause?.type
135+
case .macroDecl(let macro):
136+
return macro.signature.returnClause?.type
139137
default:
140138
return nil
141139
}

0 commit comments

Comments
 (0)