Consolidate selected overlay acquisition

This commit is contained in:
2026-10-25 13:18:54 +00:00
parent 9a64a65b6c
commit b915dd776a
9 changed files with 138 additions and 193 deletions

View File

@@ -97,14 +97,29 @@ func applyInputLayers(source Source, filesystem *FilesystemContext, overlay stri
return input, diagnostics
}
assembly := newAssemblyAccumulator(composition)
input.sources, diagnostics = loadSelectedOverlayIntoWithVersion(
source, filesystem, input.parsed, assembly, input.sources,
overlay, protectionRule, defaultImportLimits(), input.versionState, policy,
)
resolved, diagnostic := resolveOrdinaryOverlayFilesystem(source, filesystem, input.parsed, input.resolvedFilesystem)
if diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}
if source.kind != sourceNone || nativeContext(source, filesystem) {
if diagnostic := validateResolvedFilesystemDirectories(resolved); diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}
}
request := selectedOverlayRequest{
name: overlay, filesystem: resolved, protectionRule: protectionRule,
sequencePolicy: policy, limits: defaultImportLimits(), versionState: input.versionState,
}
access, diagnostic := openSelectedOverlayAccess(resolved)
if diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}
input.sources, diagnostics = loadSelectedOverlay(request, access, assembly, input.sources)
if len(diagnostics) != 0 {
return input, diagnostics
}
contexts, diagnostic := contextsForAcquiredSources(source, filesystem, input.parsed.source, input.sources[len(input.sources)-1:])
input.resolvedFilesystem = &resolved
contexts, diagnostic := contextsForResolvedSources(&resolved, input.sources[len(input.sources)-1:])
if diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}