in Sources/MockoloFramework/Utils/SwiftType.swift [143:162]
func includingIdentifiers() -> [String] {
switch kind {
case .tuple(let tuple):
return tuple.elements.flatMap { $0.type.includingIdentifiers() }
case .nominal(let nominal):
var ids: [String] = []
if let namespace = nominal.namespace {
ids.append(contentsOf: namespace.includingIdentifiers())
}
ids.append(nominal.name)
for type in nominal.genericParameterTypes {
ids.append(contentsOf: type.includingIdentifiers())
}
return ids
case .closure(let closure):
return closure.arguments.flatMap { $0.type.includingIdentifiers() } + closure.returning.includingIdentifiers()
case .composition(let composition):
return composition.elements.flatMap { $0.includingIdentifiers() }
}
}