about summary refs log tree commit diff
path: root/src/libexpr
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/eval.cc6
-rw-r--r--src/libexpr/value-to-json.cc2
-rw-r--r--src/libexpr/value-to-xml.cc2
-rw-r--r--src/libexpr/value.hh20
4 files changed, 15 insertions, 15 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index b0afccdfbaaf..2ff9756108ad 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1616,20 +1616,20 @@ size_t valueSize(Value & v)
 }
 
 
-string ExternalValueBase::coerceToString(const Pos & pos, PathSet & context, bool copyMore, bool copyToStore)
+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)
+bool ExternalValueBase::operator==(const ExternalValueBase & b) const
 {
     return false;
 }
 
 
-std::ostream & operator << (std::ostream & str, ExternalValueBase & v) {
+std::ostream & operator << (std::ostream & str, const ExternalValueBase & v) {
     return v.print(str);
 }
 
diff --git a/src/libexpr/value-to-json.cc b/src/libexpr/value-to-json.cc
index b9f3e6551de1..cdb71341875a 100644
--- a/src/libexpr/value-to-json.cc
+++ b/src/libexpr/value-to-json.cc
@@ -91,7 +91,7 @@ void printValueAsJSON(EvalState & state, bool strict,
 
 
 void ExternalValueBase::printValueAsJSON(EvalState & state, bool strict,
-      std::ostream & str, PathSet & context)
+      std::ostream & str, PathSet & context) const
 {
     throw TypeError(format("cannot convert %1% to JSON") % showType());
 }
diff --git a/src/libexpr/value-to-xml.cc b/src/libexpr/value-to-xml.cc
index 3cecc33dc299..bbbb7039bf70 100644
--- a/src/libexpr/value-to-xml.cc
+++ b/src/libexpr/value-to-xml.cc
@@ -155,7 +155,7 @@ static void printValueAsXML(EvalState & state, bool strict, bool location,
 
 
 void ExternalValueBase::printValueAsXML(EvalState & state, bool strict,
-    bool location, XMLWriter & doc, PathSet & context, PathSet & drvsSeen)
+    bool location, XMLWriter & doc, PathSet & context, PathSet & drvsSeen) const
 {
     doc.writeEmptyElement("unevaluated");
 }
diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh
index 227a81f2b635..c06b5a6d1153 100644
--- a/src/libexpr/value.hh
+++ b/src/libexpr/value.hh
@@ -42,45 +42,45 @@ typedef long NixInt;
  */
 class ExternalValueBase
 {
-    friend std::ostream & operator << (std::ostream & str, ExternalValueBase & v);
+    friend std::ostream & operator << (std::ostream & str, const ExternalValueBase & v);
     protected:
     /* Print out the value */
-    virtual std::ostream & print(std::ostream & str) = 0;
+    virtual std::ostream & print(std::ostream & str) const = 0;
 
     public:
     /* Return a simple string describing the type */
-    virtual string showType() = 0;
+    virtual string showType() const = 0;
 
     /* Return a string to be used in builtins.typeOf */
-    virtual string typeOf() = 0;
+    virtual string typeOf() const = 0;
 
     /* How much space does this value take up */
-    virtual size_t valueSize(std::set<const void *> & seen) = 0;
+    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 string coerceToString(const Pos & pos, PathSet & context, bool copyMore, bool copyToStore);
+    virtual 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);
+    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,
-        std::ostream & str, PathSet & context);
+        std::ostream & str, 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);
+        XMLWriter & doc, PathSet & context, PathSet & drvsSeen) const;
 
     virtual ~ExternalValueBase()
     {
     };
 };
 
-std::ostream & operator << (std::ostream & str, ExternalValueBase & v);
+std::ostream & operator << (std::ostream & str, const ExternalValueBase & v);
 
 
 struct Value