about summary refs log tree commit diff
path: root/third_party/nix/src/libexpr/value.hh
diff options
context:
space:
mode:
authorKane York <kanepyork@gmail.com>2020-07-31T22·27-0700
committerkanepyork <rikingcoding@gmail.com>2020-08-01T18·54+0000
commit64f6bb695130e14bb376fa52a46c716c975020a4 (patch)
treec0882c2e6ad92465700a67a66249f023aa5627c0 /third_party/nix/src/libexpr/value.hh
parent770034042a3e7cb7f3a9f7a271ab45e44b0d006c (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/value.hh')
-rw-r--r--third_party/nix/src/libexpr/value.hh53
1 files changed, 1 insertions, 52 deletions
diff --git a/third_party/nix/src/libexpr/value.hh b/third_party/nix/src/libexpr/value.hh
index 35c5e4d0a0b5..5d5785ebeb0f 100644
--- a/third_party/nix/src/libexpr/value.hh
+++ b/third_party/nix/src/libexpr/value.hh
@@ -25,7 +25,7 @@ typedef enum {
   tBlackhole,
   tPrimOp,
   tPrimOpApp,
-  tExternal,
+  _reserved1,  // formerly tExternal
   tFloat
 } ValueType;
 
@@ -36,60 +36,10 @@ struct ExprLambda;
 struct PrimOp;
 struct PrimOp;
 class Symbol;
-struct Pos;
-class EvalState;
-class XMLWriter;
-class JSONPlaceholder;
 
 typedef int64_t NixInt;
 typedef double NixFloat;
 
-/* External values must descend from ExternalValueBase, so that
- * type-agnostic nix functions (e.g. showType) can be implemented
- */
-class ExternalValueBase {
-  friend std::ostream& operator<<(std::ostream& str,
-                                  const ExternalValueBase& v);
-
- protected:
-  /* Print out the value */
-  virtual std::ostream& print(std::ostream& str) const = 0;
-
- public:
-  /* Return a simple string describing the type */
-  virtual std::string showType() const = 0;
-
-  /* Return a string to be used in builtins.typeOf */
-  virtual std::string typeOf() const = 0;
-
-  /* How much space does this value take up */
-  virtual size_t valueSize(std::set<const void*>& seen) const = 0;
-
-  /* Coerce the value to a string. Defaults to uncoercable, i.e. throws an
-   * error
-   */
-  virtual std::string coerceToString(const Pos& pos, PathSet& context,
-                                     bool copyMore, bool copyToStore) const;
-
-  /* Compare to another value of the same type. Defaults to uncomparable,
-   * i.e. always false.
-   */
-  virtual bool operator==(const ExternalValueBase& b) const;
-
-  /* Print the value as JSON. Defaults to unconvertable, i.e. throws an error */
-  virtual void printValueAsJSON(EvalState& state, bool strict,
-                                JSONPlaceholder& out, PathSet& context) const;
-
-  /* Print the value as XML. Defaults to unevaluated */
-  virtual void printValueAsXML(EvalState& state, bool strict, bool location,
-                               XMLWriter& doc, PathSet& context,
-                               PathSet& drvsSeen) const;
-
-  virtual ~ExternalValueBase(){};
-};
-
-std::ostream& operator<<(std::ostream& str, const ExternalValueBase& v);
-
 // Forward declaration of Value is required because the following
 // types are mutually recursive.
 //
@@ -155,7 +105,6 @@ struct Value : public gc {
     NixLambda lambda;
     PrimOp* primOp;
     NixPrimOpApp primOpApp;
-    ExternalValueBase* external;
     NixFloat fpoint;
   };