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
)
}