Retain main version warnings in layered loads
This commit is contained in:
@@ -146,6 +146,7 @@ func assembleLayeredInput[T any](request loadRequest[T], input assembledInput, a
|
||||
return input, diagnostics
|
||||
}
|
||||
}
|
||||
var versionDiagnostics []Diagnostic
|
||||
if request.sourceVersionMode == sourceVersionModeDefault {
|
||||
var mainRoot *document.Node
|
||||
if mainComposition != nil {
|
||||
@@ -153,8 +154,9 @@ func assembleLayeredInput[T any](request loadRequest[T], input assembledInput, a
|
||||
} else if input.document != nil {
|
||||
mainRoot = input.document
|
||||
}
|
||||
if diagnostics := checkVersion(request.definition.Version, mainRoot); hasErrors(diagnostics) {
|
||||
return input, diagnostics
|
||||
versionDiagnostics = checkVersion(request.definition.Version, mainRoot)
|
||||
if hasErrors(versionDiagnostics) {
|
||||
return input, versionDiagnostics
|
||||
}
|
||||
}
|
||||
if mainComposition != nil {
|
||||
@@ -170,7 +172,7 @@ func assembleLayeredInput[T any](request loadRequest[T], input assembledInput, a
|
||||
request.sequencePolicy, declarations,
|
||||
)
|
||||
if len(diagnostics) != 0 {
|
||||
return input, diagnostics
|
||||
return input, append(versionDiagnostics, diagnostics...)
|
||||
}
|
||||
projectTierSourceDestinations(input.sources[:mainSourceCount], mainEvidence, operations)
|
||||
}
|
||||
@@ -180,7 +182,7 @@ func assembleLayeredInput[T any](request loadRequest[T], input assembledInput, a
|
||||
assembly = newAssemblyAccumulator(composition)
|
||||
}
|
||||
if assembly == nil {
|
||||
return input, nil
|
||||
return input, versionDiagnostics
|
||||
}
|
||||
assembly.current.inputBytes = accounting.bytes
|
||||
assembly.current.inputNodes = accounting.nodes
|
||||
@@ -193,17 +195,17 @@ func assembleLayeredInput[T any](request loadRequest[T], input assembledInput, a
|
||||
overlayPolicy := []sequencePolicy{request.sequencePolicy}
|
||||
input.sources, diagnostics = loadSelectedOverlayIntoWithVersion(selection, request.overlayFilesystem, selected, assembly, input.sources, request.overlay, request.protectionVersion(), defaultImportLimits(), input.versionState, overlayPolicy...)
|
||||
if len(diagnostics) != 0 {
|
||||
return input, diagnostics
|
||||
return input, append(versionDiagnostics, diagnostics...)
|
||||
}
|
||||
contexts, diagnostic := contextsForAcquiredSources(selection, request.overlayFilesystem, selected.source, input.sources[len(input.sources)-1:])
|
||||
if diagnostic != nil {
|
||||
return input, []Diagnostic{*diagnostic}
|
||||
return input, append(versionDiagnostics, *diagnostic)
|
||||
}
|
||||
mergeResourceContexts(&input.contexts, contexts)
|
||||
}
|
||||
input.composition = assembly.current
|
||||
input.document = assembly.current.root
|
||||
return input, nil
|
||||
return input, versionDiagnostics
|
||||
}
|
||||
|
||||
func acquireUnderlayGroupScopes(group loadGroup, index int, rule *VersionRule, accounting *importAccounting, versionState *sourceVersionState, policy sequencePolicy) (*acquiredUnderlayGroup, []Diagnostic) {
|
||||
|
||||
Reference in New Issue
Block a user