Normalize projected collection history evidence
This commit is contained in:
@@ -445,11 +445,12 @@ func applyOverlaySequenceEvidence(
|
||||
}
|
||||
}
|
||||
if lower != nil {
|
||||
introduced := overlayPathOrigins(higher, incomingOrigins, path, layer)
|
||||
result.overlays = append(result.overlays, overlayRecord{
|
||||
change: Change{
|
||||
Path: path.clone(), Origin: incomingOrigin(incomingOrigins, path, higher, layer),
|
||||
Previous: previousOrigins(previous),
|
||||
}, displaced: displaced,
|
||||
}, displaced: displaced, introduced: introduced,
|
||||
})
|
||||
}
|
||||
} else {
|
||||
@@ -468,12 +469,13 @@ func applyOverlaySequenceEvidence(
|
||||
previous := cloneOrigin(result.origins[lowerPath.String()])
|
||||
deleteOriginSubtree(result.origins, lowerPath, lowerItem)
|
||||
collectOverlayOriginsAt(result.origins, incomingOrigins, higherItem, higherPath, outputPath, layer)
|
||||
introduced := overlayPathOriginsAt(higherItem, incomingOrigins, higherPath, outputPath, layer)
|
||||
result.overlays = append(result.overlays, overlayRecord{
|
||||
change: Change{
|
||||
Path: outputPath.clone(), Origin: incomingOrigin(incomingOrigins, higherPath, higherItem, layer),
|
||||
Previous: previousOrigins(previous),
|
||||
},
|
||||
displaced: displaced,
|
||||
displaced: displaced, introduced: introduced,
|
||||
})
|
||||
}
|
||||
for _, projection := range combined.higherItems {
|
||||
@@ -521,10 +523,16 @@ func collectOverlayOriginsFrom(origins, incomingOrigins map[string]Origin, node
|
||||
}
|
||||
|
||||
func overlayPathOrigins(node *document.Node, incomingOrigins map[string]Origin, path Path, layer Layer) []historyPathOrigin {
|
||||
return overlayPathOriginsAt(node, incomingOrigins, path, path, layer)
|
||||
}
|
||||
|
||||
func overlayPathOriginsAt(node *document.Node, incomingOrigins map[string]Origin, from, to Path, layer Layer) []historyPathOrigin {
|
||||
var introduced []historyPathOrigin
|
||||
walkDocument(node, path, func(affected Path, value *document.Node) {
|
||||
walkDocument(node, Path{}, func(relative Path, value *document.Node) {
|
||||
source := appendDestination(from, relative)
|
||||
affected := appendDestination(to, relative)
|
||||
introduced = append(introduced, historyPathOrigin{
|
||||
path: affected.clone(), origin: incomingOrigin(incomingOrigins, affected, value, layer),
|
||||
path: affected.clone(), origin: incomingOrigin(incomingOrigins, source, value, layer),
|
||||
sensitive: value.Sensitive,
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user