diff options
author | Kane York <kanepyork@gmail.com> | 2020-07-31T22·27-0700 |
---|---|---|
committer | kanepyork <rikingcoding@gmail.com> | 2020-08-01T18·54+0000 |
commit | 64f6bb695130e14bb376fa52a46c716c975020a4 (patch) | |
tree | c0882c2e6ad92465700a67a66249f023aa5627c0 /third_party/nix/src/libexpr/eval.cc | |
parent | 770034042a3e7cb7f3a9f7a271ab45e44b0d006c (diff) |
feat(3p/nix): remove External values feature r/1527
External values are only useful when using the plugin framework, which we are not interested in carrying forward. Reverts commit 320659b0cd161249c95e736c3fb309b1a73ea728 Change-Id: Ib4929c349bbb33f16224fc674e94c7b7d5953c6a Reviewed-on: https://cl.tvl.fyi/c/depot/+/1505 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'third_party/nix/src/libexpr/eval.cc')
-rw-r--r-- | third_party/nix/src/libexpr/eval.cc | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/third_party/nix/src/libexpr/eval.cc b/third_party/nix/src/libexpr/eval.cc index e04bf7fc4918..34c1e5046dcd 100644 --- a/third_party/nix/src/libexpr/eval.cc +++ b/third_party/nix/src/libexpr/eval.cc @@ -119,14 +119,12 @@ static void printValue(std::ostream& str, std::set<const Value*>& active, case tPrimOpApp: str << "<PRIMOP-APP>"; break; - case tExternal: - str << *v.external; - break; case tFloat: str << v.fpoint; break; default: - throw Error("invalid value"); + throw Error( + absl::StrCat("invalid value of type ", static_cast<int>(v.type))); } active.erase(&v); @@ -176,11 +174,16 @@ std::string showType(const Value& v) { case tPrimOpApp: return fmt("the partially applied built-in function '%s'", std::string(getPrimOp(v)->primOp->name)); - case tExternal: - return v.external->showType(); + case _reserved1: + LOG(FATAL) << "attempted to show the type string of the deprecated " + "tExternal value"; + break; case tFloat: return "a float"; } + LOG(FATAL) + << "attempted to determine the type string of an unknown type number (" + << static_cast<int>(v.type) << ")"; abort(); } @@ -1524,10 +1527,6 @@ std::string EvalState::coerceToString(const Pos& pos, Value& v, copyToStore); } - if (v.type == tExternal) { - return v.external->coerceToString(pos, context, coerceMore, copyToStore); - } - if (coerceMore) { /* Note that `false' is represented as an empty string for shell scripting convenience, just like `null'. */ @@ -1691,9 +1690,6 @@ bool EvalState::eqValues(Value& v1, Value& v2) { case tPrimOpApp: return false; - case tExternal: - return *v1.external == *v2.external; - case tFloat: return v1.fpoint == v2.fpoint; @@ -1894,14 +1890,6 @@ size_t valueSize(Value& v) { sz += doValue(*v.primOpApp.left); sz += doValue(*v.primOpApp.right); break; - case tExternal: - if (seen.find(v.external) != seen.end()) { - break; - } - seen.insert(v.external); - // note: this is a plugin call - sz += v.external->valueSize(seen); - break; default:; } @@ -1934,21 +1922,6 @@ size_t valueSize(Value& v) { return doValue(v); } -std::string ExternalValueBase::coerceToString(const Pos& pos, PathSet& context, - bool copyMore, - bool copyToStore) const { - throw TypeError(format("cannot coerce %1% to a string, at %2%") % showType() % - pos); -} - -bool ExternalValueBase::operator==(const ExternalValueBase& b) const { - return false; -} - -std::ostream& operator<<(std::ostream& str, const ExternalValueBase& v) { - return v.print(str); -} - EvalSettings evalSettings; static GlobalConfig::Register r1(&evalSettings); |