about summary refs log tree commit diff
path: root/src/fix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/fix.cc')
-rw-r--r--src/fix.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/fix.cc b/src/fix.cc
index d954abfe4be2..f55074907fbb 100644
--- a/src/fix.cc
+++ b/src/fix.cc
@@ -111,6 +111,14 @@ static Expr evalExpr(Expr e)
         ATmatch(e, "FSId(<str>)", &s1))
         return e;
 
+    if (ATgetType(e) == AT_APPL && 
+        ((string) ATgetName(ATgetAFun(e)) == "Slice" ||
+         (string) ATgetName(ATgetAFun(e)) == "Derive"))
+    {
+        return ATmake("FSId(<str>)", 
+            ((string) writeTerm(e, "", 0)).c_str());
+    }
+
     /* Application. */
     if (ATmatch(e, "App(<term>, [<list>])", &e1, &e2)) {
         e1 = evalExpr(e1);