Carry resolved filesystem facts through loads

This commit is contained in:
2026-10-25 13:13:47 +00:00
parent 6158e9db3b
commit 9a64a65b6c
8 changed files with 103 additions and 65 deletions

View File

@@ -164,7 +164,7 @@ func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, sta
request.input.source = selectedSource
if request.input.imports && selectedSource.kind != sourceNone {
importRequest := importAcquisitionRequest{input: request, main: parsed, processing: versionProcessing}
input.composition, input.sources, diagnostics = acquireImportedInput(importRequest, &policy, state, tier)
input.composition, input.sources, input.resolvedFilesystem, diagnostics = acquireImportedInput(importRequest, &policy, state, tier)
if len(diagnostics) != 0 {
return input, diagnostics
}
@@ -218,7 +218,14 @@ func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, sta
accounting.nodes += rawNodes + placementNodes
}
if !activeOverlay(request.ordinaryOverlay) || request.input.imports {
contexts, diagnostic := contextsForAcquiredSources(selectedSource, request.input.filesystem, parsed.source, input.sources)
if input.resolvedFilesystem == nil && len(input.sources) != 0 && (selectedSource.kind == sourceFile || request.input.filesystem != nil || nativeContext(selectedSource, request.input.filesystem)) {
resolved, diagnostic := resolveFilesystemContext(selectedSource, request.input.filesystem, parsed, tier.hostToken)
if diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}
input.resolvedFilesystem = &resolved
}
contexts, diagnostic := contextsForResolvedSources(input.resolvedFilesystem, input.sources)
if diagnostic != nil {
return input, []Diagnostic{*diagnostic}
}