Wire load lifecycle through input acquisition
This commit is contained in:
@@ -169,6 +169,7 @@ func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, sta
|
||||
versionState.mainProcessing = &processed
|
||||
}
|
||||
}
|
||||
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)
|
||||
@@ -233,3 +234,21 @@ func acquireInput(request inputAcquisitionRequest, policy acquisitionPolicy, sta
|
||||
}
|
||||
return input, nil
|
||||
}
|
||||
|
||||
func registerAcquiredSource(source Source, context *FilesystemContext, info *SourceInfo, visited map[resourceIdentity]importRoute, hostToken *namespaceToken) *Diagnostic {
|
||||
if visited == nil || info == nil || info.Path == "" {
|
||||
return nil
|
||||
}
|
||||
identity := resourceIdentity{namespace: hostToken, path: info.Path}
|
||||
if source.kind == sourceFilesystem {
|
||||
identity.namespace = source.namespace.token
|
||||
} else if context != nil && context.FS != nil {
|
||||
identity.namespace = context.FS.namespace.token
|
||||
}
|
||||
if previous, repeated := visited[identity]; repeated {
|
||||
value := importRepeatedDiagnostic(Location{SourceID: info.ID}, previous, importRoute{})
|
||||
return &value
|
||||
}
|
||||
visited[identity] = importRoute{canonical: info.Path}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user