]> gitweb.factorcode.org Git - factor.git/commitdiff
YAML: don't use aliases/anchors for fixnums
authorJon Harper <jon.harper87@gmail.com>
Sat, 10 May 2014 13:33:11 +0000 (15:33 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 22 May 2014 14:57:33 +0000 (07:57 -0700)
extra/yaml/yaml-tests.factor
extra/yaml/yaml.factor

index 64dd88ed6cbd453bdfbca5f6e876ac0b86565dc4..fe493fbd43a57676836bd0e1b40c138e00e3b967 100644 (file)
@@ -563,3 +563,10 @@ ${ construct-value-obj } [ $ construct-value-obj >yaml-docs yaml-docs> ] unit-te
 [ "- foo\n:)" yaml> ] [ libyaml-parser-error? ] must-fail-with
 [ "- &foo 1\n- *baz\n" yaml> ] [ yaml-undefined-anchor? ] must-fail-with
 [ "" yaml> ] [ yaml-no-document? ] must-fail-with
+
+
+! !!!!!!!!!!!!!!!
+! misc
+
+! Don't use aliases/anchors for equal fixnums
+{ f } [ CHAR: & { 0 0 } >yaml member? ] unit-test
index 4831fb9a0a983fb9ca195d0901cb5f8c2f274dcf..f9914113c54a1bce264f71e44e35053741206307 100644 (file)
@@ -268,7 +268,7 @@ GENERIC: (replace-aliases) ( yaml-anchors obj -- obj' )
         [ next-anchor<< ] bi*
     ] bi ;
 
-:: ?replace-aliases ( yaml-anchors obj -- obj' )
+:: (?replace-aliases) ( yaml-anchors obj -- obj' )
     yaml-anchors objects>> :> objects
     obj objects at* [
         [ yaml-anchors incr-anchor dup obj objects set-at ] unless*
@@ -280,6 +280,9 @@ GENERIC: (replace-aliases) ( yaml-anchors obj -- obj' )
         obj'
     ] if ;
 
+: ?replace-aliases ( yaml-anchors obj -- obj' )
+    dup fixnum? [ nip ] [ (?replace-aliases) ] if ;
+
 M: object (replace-aliases) nip ;
 
 M: byte-array (replace-aliases) nip ;