func model()

in Sources/MockoloFramework/Parsers/SwiftSyntaxExtensions.swift [503:548]


    func model(with acl: String, declKind: NominalTypeDeclKind, processed: Bool) -> Model {
        let isStatic = self.modifiers.isStatic

        let params = self.parameterClause.parameters.enumerated().compactMap {
            $1.model(inInit: false, declKind: declKind, index: $0)
        }
        let genericTypeParams = self.genericParameterClause?.parameters.compactMap { $0.model(inInit: false) } ?? []
        let genericWhereClause = self.genericWhereClause?.description

        let access: SubscriptAccess
        switch self.accessorBlock?.accessors {
        case .accessors(let accessorDecls):
            let hasWriteAccessor = accessorDecls.contains(where: {
                switch $0.accessorSpecifier.tokenKind {
                case .keyword(.set), .keyword(._modify):
                    return true
                default:
                    // Also match "modify" which is behind @_spi(ExperimentalLanguageFeatures)
                    return $0.accessorSpecifier.text == "modify"
                }
            })
            access = hasWriteAccessor ? .getSet : .get
        case .getter:
            access = .get
        case nil:
            access = .getSet // fallback
        }

        let subscriptModel = MethodModel(name: self.subscriptKeyword.text,
                                         returnType: SwiftType(typeSyntax: self.returnClause.type),
                                         kind: .subscriptKind(access),
                                         acl: acl,
                                         genericTypeParams: genericTypeParams,
                                         genericWhereClause: genericWhereClause,
                                         params: params,
                                         isAsync: false,
                                         throwing: .none,
                                         isStatic: isStatic,
                                         offset: self.offset,
                                         length: self.length,
                                         funcsWithArgsHistory: [],
                                         customModifiers: [:],
                                         modelDescription: self.description,
                                         processed: processed)
        return subscriptModel
    }