@@ -10,48 +10,48 @@ import SwiftSyntaxMacros
1010
1111extension ClassDeclSyntax {
1212
13- public var firstInheritedType : TypeSyntax ? {
14- inheritanceClause? . inheritedTypes. first? . type
13+ public var unverifiedInferredSuperclass : TypeSyntax ? {
14+ inheritanceClause? . inheritedTypes. first? . type. trimmed
1515 }
1616
1717 public func inferredSuperclass( ) -> TypeSyntax ? {
18- let superclassFinder = SuperclassFinder ( for: self )
19- return superclassFinder . find ( ) ? . trimmed
18+ let visitor = SubclassKeywordsVisitor ( for: self )
19+ return visitor . verifiedSuperclass ( )
2020 }
2121}
2222
2323extension ClassDeclSyntax {
2424
25- private final class SuperclassFinder : SyntaxVisitor {
25+ private final class SubclassKeywordsVisitor : SyntaxVisitor {
2626
2727 private let classDecl : ClassDeclSyntax
28- private var didFind = false
28+ private var didVerify = false
2929
3030 init ( for classDecl: ClassDeclSyntax ) {
3131 self . classDecl = classDecl
3232 super. init ( viewMode: . sourceAccurate)
3333 }
3434
35- func find ( ) -> TypeSyntax ? {
36- guard let firstInheritedType = classDecl. firstInheritedType else {
35+ func verifiedSuperclass ( ) -> TypeSyntax ? {
36+ guard let unverified = classDecl. unverifiedInferredSuperclass else {
3737 return nil
3838 }
3939
4040 walk ( classDecl)
41- return didFind ? firstInheritedType : nil
41+ return didVerify ? unverified : nil
4242 }
4343
4444 override func visit( _ node: ClassDeclSyntax ) -> SyntaxVisitorContinueKind {
4545 node == classDecl ? . visitChildren : . skipChildren
4646 }
4747
4848 override func visit( _ node: DeclModifierSyntax ) -> SyntaxVisitorContinueKind {
49- didFind = didFind || node. overrideSpecifier != nil
49+ didVerify = didVerify || node. overrideSpecifier != nil
5050 return . visitChildren
5151 }
5252
5353 override func visit( _: SuperExprSyntax ) -> SyntaxVisitorContinueKind {
54- didFind = true
54+ didVerify = true
5555 return . visitChildren
5656 }
5757 }
0 commit comments