aboutsummaryrefslogtreecommitdiff
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 d954abfe4..f55074907 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);