Check source versions against original document controls

This commit is contained in:
2026-11-02 00:37:45 +00:00
parent 1fd0adc571
commit ad5b859337
5 changed files with 102 additions and 46 deletions

View File

@@ -205,7 +205,7 @@ func processAcquiredInputVersion(parsed parsedSource, request inputAcquisitionRe
hasResult := false
updateMainProcessing := false
switch request.directiveContext {
case rootDirectiveContextSource:
case rootDirectiveContextSource, rootDirectiveContextLayered:
if state != nil {
processed, diagnostics := state.processWithDirectiveContext(
parsed.document, request.role, request.input.destination, sourceID,
@@ -226,30 +226,6 @@ func processAcquiredInputVersion(parsed parsedSource, request inputAcquisitionRe
}
}
hasResult = true
case rootDirectiveContextLayered:
extracted, diagnostics := extractRootDirectives(parsed.document, request.directiveContext)
if len(diagnostics) != 0 {
return nil, diagnostics
}
result = sourceVersionProcessingResult{
payload: extracted.body, imports: extracted.imports, sequences: extracted.sequences,
directiveContext: request.directiveContext,
}
hasResult = true
if state != nil && state.mode != sourceVersionModeDefault {
processed, diagnostics := state.process(
extracted.body, request.role, request.input.destination,
sourceID, request.input.placementMode,
)
if len(diagnostics) != 0 {
return nil, diagnostics
}
processed.imports = extracted.imports
processed.sequences = append(cloneSequenceDeclarations(extracted.sequences), processed.sequences...)
processed.directiveContext = request.directiveContext
result = processed
updateMainProcessing = request.role == sourceVersionMain
}
default:
if state != nil && state.mode != sourceVersionModeDefault {
processed, diagnostics := state.process(