Project incoming source destinations through tier operations
This commit is contained in:
@@ -65,13 +65,28 @@ func (a *assemblyAccumulator) applyOverlayWithCollectionPolicy(
|
||||
sequencePolicy sequencePolicy,
|
||||
declarations []sequenceDeclarationSpec,
|
||||
) []Diagnostic {
|
||||
_, diagnostics := a.applyOverlayWithCollectionProjection(overlay, incomingOrigins, incomingPolicies, applications, layer, sequencePolicy, declarations)
|
||||
return diagnostics
|
||||
}
|
||||
|
||||
// applyOverlayWithCollectionProjection also returns the incoming tier's item
|
||||
// assignments so acquisition evidence can follow the same operation as values.
|
||||
func (a *assemblyAccumulator) applyOverlayWithCollectionProjection(
|
||||
overlay *document.Node,
|
||||
incomingOrigins map[string]Origin,
|
||||
incomingPolicies collectionPolicyScope,
|
||||
applications []historyApplication,
|
||||
layer Layer,
|
||||
sequencePolicy sequencePolicy,
|
||||
declarations []sequenceDeclarationSpec,
|
||||
) ([]sequenceHistoryContribution, []Diagnostic) {
|
||||
if a == nil || a.current == nil || a.current.root == nil || a.current.root.Kind != document.Mapping || overlay == nil || overlay.Kind != document.Mapping {
|
||||
return invalidOverlayDocument()
|
||||
return nil, invalidOverlayDocument()
|
||||
}
|
||||
mergeOriginContribution(a.current.origins, Path{}, incomingOrigin(incomingOrigins, Path{}, overlay, layer))
|
||||
sequences, diagnostics := mergeOverlayMappingsWithCollectionPolicy(a, overlay, incomingOrigins, incomingPolicies, layer, sequencePolicy, declarations)
|
||||
if len(diagnostics) != 0 {
|
||||
return diagnostics
|
||||
return nil, diagnostics
|
||||
}
|
||||
if len(applications) == 0 {
|
||||
application := historyApplication{layer: layer, value: overlay, sequences: sequences}
|
||||
@@ -83,7 +98,7 @@ func (a *assemblyAccumulator) applyOverlayWithCollectionPolicy(
|
||||
a.current.applications = append(a.current.applications, application)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return sequences, nil
|
||||
}
|
||||
|
||||
func mergeOverlayMappingsWithCollectionPolicy(
|
||||
|
||||
Reference in New Issue
Block a user