diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-10-30 17:34:34 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-10-30 17:34:34 -0700 |
commit | 13315b2a579d560c93f69aa033840e1c2facf67d (patch) | |
tree | 3c600151a689523073a4f9e11008150ef6a4349d | |
parent | 3eb350738277cf7694136550cf3560415a3b0a08 (diff) | |
download | mu-13315b2a579d560c93f69aa033840e1c2facf67d.tar.gz |
182
-rw-r--r-- | mu.arc | 3 | ||||
-rw-r--r-- | mu.arc.t | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/mu.arc b/mu.arc index 19c8946d..df6aff2a 100644 --- a/mu.arc +++ b/mu.arc @@ -671,7 +671,8 @@ (def maybe-add (arg offset idx) (unless (or (in ty.arg 'literal 'offset) (offset v.arg) - (~isa v.arg 'sym)) + (~isa v.arg 'sym) + (in v.arg 'nil 'default-scope)) (= (offset v.arg) idx))) ;; literate tangling system for reordering code diff --git a/mu.arc.t b/mu.arc.t index 96e7c866..6e8a0ad7 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -1368,6 +1368,17 @@ (prn "F - convert-names renames symbolic names to integer offsets")) (reset) +(new-trace "convert-names-nil") +(if (~iso (convert-names + '(((x integer) <- copy (4 literal)) + ((y integer) <- copy (2 literal)) + ((nil integer) <- add (x integer) (y integer)))) + '(((1 integer) <- copy (4 literal)) + ((2 integer) <- copy (2 literal)) + ((nil integer) <- add (1 integer) (2 integer)))) + (prn "F - convert-names never renames nil")) + +(reset) (new-trace "convert-quotes-defer") (if (~iso (convert-quotes '(((1 integer) <- copy (4 literal)) @@ -1421,4 +1432,15 @@ (if (no rep.last-routine!error) (prn "F - default-scope checks bounds"))) +(reset) +(new-trace "convert-names-default-scope") +(if (~iso (convert-names + '(((x integer) <- copy (4 literal)) + ((y integer) <- copy (2 literal)) + ((default-scope integer) <- add (x integer) (y integer)))) + '(((1 integer) <- copy (4 literal)) + ((2 integer) <- copy (2 literal)) + ((default-scope integer) <- add (1 integer) (2 integer)))) + (prn "F - convert-names never renames default-scope")) + (reset) ; end file with this to persist the trace for the final test |