about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-12-31 21:15:26 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-12-31 21:15:26 -0800
commit565fe21ab2c1af358492f596ae8930000af0a612 (patch)
treef43720c2b7b79bca3521c0a9a067949ee0e12bad
parent954dd99d4981261c7b3726a13be280d1567daf6e (diff)
downloadmu-565fe21ab2c1af358492f596ae8930000af0a612.tar.gz
475 - support symbol literals, just as a convenience
-rw-r--r--mu.arc3
-rw-r--r--mu.arc.t8
2 files changed, 10 insertions, 1 deletions
diff --git a/mu.arc b/mu.arc
index 1259a87e..3d25d179 100644
--- a/mu.arc
+++ b/mu.arc
@@ -1038,7 +1038,8 @@
 ; convert the arg to corresponding index
 (def convert-name (arg default-name)
 ;?   (prn "111 @arg @default-name")
-  (when (and nondummy.arg not-raw-string.arg)
+  (when (and nondummy.arg not-raw-string.arg
+             (~is ty.arg.0 'literal))  ; can't use 'literal?' because we want to rename offsets
 ;?     (prn "112 @arg")
     (let name (space-to-name arg default-name)
 ;?       (prn "113 @arg @name @keys.location* @(tostring:pr location*.name)")
diff --git a/mu.arc.t b/mu.arc.t
index e161909f..0c62899e 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -1702,6 +1702,14 @@
           '((((x literal)) <- ((copy)) ((0 literal)))))
   (prn "F - convert-names never renames literals"))
 
+(reset)
+(new-trace "convert-names-literal-2")
+(= traces* (queue))
+(if (~iso (convert-names
+            '((((x boolean)) <- ((copy)) ((x literal)))))
+          '((((1 boolean)) <- ((copy)) ((x literal)))))
+  (prn "F - convert-names never renames literals, even when the name matches a variable"))
+
 ; kludgy support for 'fork' below
 (reset)
 (new-trace "convert-names-functions")