Normalize baseline and source history evidence
This commit is contained in:
@@ -8,8 +8,9 @@ import (
|
||||
)
|
||||
|
||||
type overlayRecord struct {
|
||||
change Change
|
||||
displaced []displacedDefinition
|
||||
change Change
|
||||
displaced []displacedDefinition
|
||||
introduced []historyPathOrigin
|
||||
}
|
||||
|
||||
type displacedDefinition struct {
|
||||
@@ -357,7 +358,8 @@ func mergeOverlayMappings(result *composedDocument, target, overlay *document.No
|
||||
Path: path.clone(), Origin: incomingOrigin(incomingOrigins, path, incoming, layer),
|
||||
Previous: previousOrigins(previous),
|
||||
},
|
||||
displaced: displaced,
|
||||
displaced: displaced,
|
||||
introduced: overlayPathOrigins(incoming, incomingOrigins, path, layer),
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -395,7 +397,7 @@ func recordOverlayReplacement(
|
||||
Path: path.clone(), Origin: incomingOrigin(incomingOrigins, path, incoming, layer),
|
||||
Previous: previousOrigins(previous),
|
||||
},
|
||||
displaced: displaced,
|
||||
displaced: displaced, introduced: overlayPathOrigins(incoming, incomingOrigins, path, layer),
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -518,6 +520,17 @@ func collectOverlayOriginsFrom(origins, incomingOrigins map[string]Origin, node
|
||||
collectOverlayOriginsAt(origins, incomingOrigins, node, path, path, layer)
|
||||
}
|
||||
|
||||
func overlayPathOrigins(node *document.Node, incomingOrigins map[string]Origin, path Path, layer Layer) []historyPathOrigin {
|
||||
var introduced []historyPathOrigin
|
||||
walkDocument(node, path, func(affected Path, value *document.Node) {
|
||||
introduced = append(introduced, historyPathOrigin{
|
||||
path: affected.clone(), origin: incomingOrigin(incomingOrigins, affected, value, layer),
|
||||
sensitive: value.Sensitive,
|
||||
})
|
||||
})
|
||||
return introduced
|
||||
}
|
||||
|
||||
func collectOverlayOriginsAt(origins, incomingOrigins map[string]Origin, node *document.Node, from, to Path, layer Layer) {
|
||||
walkDocument(node, Path{}, func(relative Path, value *document.Node) {
|
||||
source := appendDestination(from, relative)
|
||||
@@ -633,6 +646,12 @@ func cloneOverlayRecords(records []overlayRecord) []overlayRecord {
|
||||
path: displaced.path.clone(), origin: cloneOrigin(displaced.origin),
|
||||
}
|
||||
}
|
||||
cloned[index].introduced = make([]historyPathOrigin, len(record.introduced))
|
||||
for introducedIndex, introduced := range record.introduced {
|
||||
cloned[index].introduced[introducedIndex] = historyPathOrigin{
|
||||
path: introduced.path.clone(), origin: cloneOrigin(introduced.origin), sensitive: introduced.sensitive,
|
||||
}
|
||||
}
|
||||
}
|
||||
return cloned
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user