diff --git a/src/libcmd/common-eval-args.cc b/src/libcmd/common-eval-args.cc index 237b7a4d2..9b4011e8a 100644 --- a/src/libcmd/common-eval-args.cc +++ b/src/libcmd/common-eval-args.cc @@ -161,6 +161,7 @@ SourcePath lookupFileArg(EvalState & state, std::string_view s) } else if (hasPrefix(s, "flake:")) { + settings.requireExperimentalFeature(Xp::Flakes); auto flakeRef = parseFlakeRef(std::string(s.substr(6)), {}, true, false); auto [accessor, _] = flakeRef.resolve(state.store).lazyFetch(state.store); return accessor->root(); diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc index 05fd301e1..7c2278936 100644 --- a/src/libexpr/flake/flake.cc +++ b/src/libexpr/flake/flake.cc @@ -698,6 +698,8 @@ void callFlake(EvalState & state, const LockedFlake & lockedFlake, Value & vRes) { + settings.requireExperimentalFeature(Xp::Flakes); + auto [lockFileStr, keyMap] = lockedFlake.lockFile.to_string(); auto overrides = state.buildBindings(lockedFlake.nodePaths.size()); diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index d395a2220..3fdde0e36 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -805,6 +805,7 @@ std::optional EvalState::resolveSearchPathElem(const SearchPathElem } else if (hasPrefix(elem.second, "flake:")) { + settings.requireExperimentalFeature(Xp::Flakes); auto flakeRef = parseFlakeRef(elem.second.substr(6), {}, true, false); debug("fetching flake search path element '%s''", elem.second); auto [accessor, _] = flakeRef.resolve(store).lazyFetch(store);