Handle companion imports without a filesystem base
This commit is contained in:
@@ -21,6 +21,7 @@ type tierAcquisitionState struct {
|
||||
type inputAcquisitionRequest struct {
|
||||
input loadInput
|
||||
resolved *resolvedFilesystemContext
|
||||
withoutBase bool
|
||||
role sourceVersionRole
|
||||
directiveContext rootDirectiveContext
|
||||
protectionRule *VersionRule
|
||||
@@ -34,6 +35,9 @@ type importAcquisitionRequest struct {
|
||||
}
|
||||
|
||||
func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, state *acquisitionState, tier *tierAcquisitionState) (assembledInput, []Diagnostic) {
|
||||
if request.withoutBase && request.input.mainRelative.RequireBase {
|
||||
return assembledInput{}, []Diagnostic{optionDiagnostic(CodeOptionsInvalid, "main-relative input requires a filesystem base")}
|
||||
}
|
||||
source := request.input.source
|
||||
destination := request.input.destination
|
||||
accounting := state.accounting
|
||||
@@ -102,7 +106,12 @@ func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, sta
|
||||
return input, diagnostics
|
||||
}
|
||||
request.input.source = selectedSource
|
||||
if request.input.imports && selectedSource.kind != sourceNone {
|
||||
if request.input.imports && selectedSource.kind != sourceNone && request.withoutBase {
|
||||
input, diagnostics = acquireContextlessInput(input, request, versionProcessing, policy)
|
||||
if len(diagnostics) != 0 {
|
||||
return input, diagnostics
|
||||
}
|
||||
} else if request.input.imports && selectedSource.kind != sourceNone {
|
||||
importRequest := importAcquisitionRequest{input: request, main: parsed, processing: versionProcessing}
|
||||
input.composition, input.sources, input.resolvedFilesystem, diagnostics = acquireImportedInput(importRequest, &policy, state, tier)
|
||||
if len(diagnostics) != 0 {
|
||||
|
||||
Reference in New Issue
Block a user