diff --git a/internal/backend/local/backend_local.go b/internal/backend/local/backend_local.go index d34d76f769df..7ca85f1c05f7 100644 --- a/internal/backend/local/backend_local.go +++ b/internal/backend/local/backend_local.go @@ -239,6 +239,7 @@ func (b *Local) localRunForPlanFile(op *backendrun.Operation, pf *planfile.Reade return nil, snap, diags } loader := configload.NewLoaderFromSnapshot(snap) + loader.AllowLanguageExperiments(op.ConfigLoader.AllowsLanguageExperiments()) config, configDiags := loader.LoadConfig(snap.Modules[""].Dir) diags = diags.Append(configDiags) if configDiags.HasErrors() { diff --git a/internal/configs/configload/loader.go b/internal/configs/configload/loader.go index 06d92db55e62..6ad987b7d1dc 100644 --- a/internal/configs/configload/loader.go +++ b/internal/configs/configload/loader.go @@ -164,3 +164,10 @@ func (l *Loader) ImportSourcesFromSnapshot(snap *Snapshot) { func (l *Loader) AllowLanguageExperiments(allowed bool) { l.parser.AllowLanguageExperiments(allowed) } + +// AllowsLanguageExperiments returns the value most recently passed to +// [Loader.AllowLanguageExperiments], or false if that method has not been +// called on this object. +func (l *Loader) AllowsLanguageExperiments() bool { + return l.parser.AllowsLanguageExperiments() +} diff --git a/internal/configs/parser.go b/internal/configs/parser.go index 26b900161835..91e1325df85a 100644 --- a/internal/configs/parser.go +++ b/internal/configs/parser.go @@ -121,3 +121,10 @@ func (p *Parser) ForceFileSource(filename string, src []byte) { func (p *Parser) AllowLanguageExperiments(allowed bool) { p.allowExperiments = allowed } + +// AllowsLanguageExperiments returns the value most recently passed to +// [Parser.AllowLanguageExperiments], or false if that method has not been +// called on this object. +func (p *Parser) AllowsLanguageExperiments() bool { + return p.allowExperiments +}