guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20/118: == operator: Ignore string context


From: Ludovic Courtès
Subject: 20/118: == operator: Ignore string context
Date: Tue, 19 May 2015 14:45:19 +0000

civodul pushed a commit to branch nix
in repository guix.

commit ee7fe64c0ac00f2be11604a2a6509eb86dc19f0a
Author: Eelco Dolstra <address@hidden>
Date:   Tue Jun 10 14:02:56 2014 +0200

    == operator: Ignore string context
    
    There really is no case I can think of where taking the context into
    account is useful. Mostly it's just very inconvenient.
---
 src/libexpr/eval.cc              |   13 ++-----------
 src/libexpr/primops.cc           |    2 +-
 tests/lang/eval-okay-context.nix |    2 +-
 3 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 81ce7d9..87b6bc9 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1355,17 +1355,8 @@ bool EvalState::eqValues(Value & v1, Value & v2)
         case tBool:
             return v1.boolean == v2.boolean;
 
-        case tString: {
-            /* Compare both the string and its context. */
-            if (strcmp(v1.string.s, v2.string.s) != 0) return false;
-            const char * * p = v1.string.context, * * q = v2.string.context;
-            if (!p && !q) return true;
-            if (!p || !q) return false;
-            for ( ; *p && *q; ++p, ++q)
-                if (strcmp(*p, *q) != 0) return false;
-            if (*p || *q) return false;
-            return true;
-        }
+        case tString:
+            return strcmp(v1.string.s, v2.string.s) == 0;
 
         case tPath:
             return strcmp(v1.path, v2.path) == 0;
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 993d290..feb0227 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -1297,7 +1297,7 @@ void EvalState::createBaseEnv()
        language feature gets added.  It's not necessary to increase it
        when primops get added, because you can just use `builtins ?
        primOp' to check. */
-    mkInt(v, 2);
+    mkInt(v, 3);
     addConstant("__langVersion", v);
 
     // Miscellaneous
diff --git a/tests/lang/eval-okay-context.nix b/tests/lang/eval-okay-context.nix
index b3f1748..8cd8f2e 100644
--- a/tests/lang/eval-okay-context.nix
+++ b/tests/lang/eval-okay-context.nix
@@ -1,6 +1,6 @@
 let s = "foo ${builtins.substring 33 100 (baseNameOf ./eval-okay-context.nix)} 
bar";
 in
-  if s == "foo eval-okay-context.nix bar"
+  if s != "foo eval-okay-context.nix bar"
   then abort "context not discarded"
   else builtins.unsafeDiscardStringContext s
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]