mutating func visitSymbol()

in Sources/SwiftDocC/Semantics/ReferenceResolver.swift [375:430]


    mutating func visitSymbol(_ symbol: Symbol) -> Semantic {
        let newAbstractVariants = symbol.abstractSectionVariants.map {
            AbstractSection(paragraph: visitMarkup($0.paragraph) as! Paragraph)
        }
        let newDiscussionVariants = symbol.discussionVariants.map {
            DiscussionSection(content: $0.content.map { visitMarkup($0) })
        }
        let newTopicsVariants = symbol.topicsVariants.map { topic -> TopicsSection in
            return TopicsSection(content: topic.content.map { visitMarkup($0) }, originalLinkRangesByGroup: topic.originalLinkRangesByGroup)
        }
        let newSeeAlsoVariants = symbol.seeAlsoVariants.map {
            SeeAlsoSection(content: $0.content.map { visitMarkup($0) })
        }
        let newReturnsVariants = symbol.returnsSectionVariants.map {
            ReturnsSection(content: $0.content.map { visitMarkup($0) })
        }
        let newParametersVariants = symbol.parametersSectionVariants.map { parametersSection -> ParametersSection in
            let parameters = parametersSection.parameters.map {
                Parameter(name: $0.name, contents: $0.contents.map { visitMarkup($0) })
            }
            return ParametersSection(parameters: parameters)
        }
        
        // It's important to carry over aggregate data like the merged declarations
        // or the merged default implementations to the new `Symbol` instance.
        
        return Symbol(
            kindVariants: symbol.kindVariants,
            titleVariants: symbol.titleVariants,
            subHeadingVariants: symbol.subHeadingVariants,
            navigatorVariants: symbol.navigatorVariants,
            roleHeadingVariants: symbol.roleHeadingVariants,
            platformNameVariants: symbol.platformNameVariants,
            moduleNameVariants: symbol.moduleNameVariants,
            extendedModuleVariants: symbol.extendedModuleVariants,
            requiredVariants: symbol.isRequiredVariants,
            externalIDVariants: symbol.externalIDVariants,
            accessLevelVariants: symbol.accessLevelVariants,
            availabilityVariants: symbol.availabilityVariants,
            deprecatedSummaryVariants: symbol.deprecatedSummaryVariants,
            mixinsVariants: symbol.mixinsVariants,
            declarationVariants: symbol.declarationVariants,
            defaultImplementationsVariants: symbol.defaultImplementationsVariants,
            relationshipsVariants: symbol.relationshipsVariants,
            abstractSectionVariants: newAbstractVariants,
            discussionVariants: newDiscussionVariants,
            topicsVariants: newTopicsVariants,
            seeAlsoVariants: newSeeAlsoVariants,
            returnsSectionVariants: newReturnsVariants,
            parametersSectionVariants: newParametersVariants,
            redirectsVariants: symbol.redirectsVariants,
            bystanderModuleNamesVariants: symbol.bystanderModuleNamesVariants,
            originVariants: symbol.originVariants,
            automaticTaskGroupsVariants: symbol.automaticTaskGroupsVariants
        )
    }