From 8e4fe207f12b46b6bfb47f4a6dd8cd906f3c770b Mon Sep 17 00:00:00 2001
From: Doug Coleman <doug.coleman@gmail.com>
Date: Sun, 24 Sep 2017 22:22:40 -0500
Subject: [PATCH] modern: Fix compound syntax unit tests.

---
 extra/modern/compiler/compiler.factor |   1 +
 extra/modern/modern-tests.factor      | 105 ++++++++++++--------------
 2 files changed, 49 insertions(+), 57 deletions(-)

diff --git a/extra/modern/compiler/compiler.factor b/extra/modern/compiler/compiler.factor
index e0fb617f3b..a96a11a4a2 100644
--- a/extra/modern/compiler/compiler.factor
+++ b/extra/modern/compiler/compiler.factor
@@ -62,6 +62,7 @@ ARITY: \SLOT: 1
 ARITY: \SYMBOL: 1
 ARITY: \UNUSE: 1
 ARITY: \USE: 1
+! ARITY: \USING: 0
 
 : get-arity ( string -- n/f )
     arities get at ;
diff --git a/extra/modern/modern-tests.factor b/extra/modern/modern-tests.factor
index b230f40f23..c50ebea43c 100644
--- a/extra/modern/modern-tests.factor
+++ b/extra/modern/modern-tests.factor
@@ -5,121 +5,111 @@ IN: modern.tests
 
 ! Comment
 {
-    {
-        { { "!" "" } }
-    }
+    { { "!" "" } }
 } [ "!" string>literals >strings ] unit-test
 
 {
-    {
-        { { "!" " lol" } }
-    }
+    { { "!" " lol" } }
 } [ "! lol" string>literals >strings ] unit-test
 
 {
-    { { "lol!" } }
+    { "lol!" }
 } [ "lol!" string>literals >strings ] unit-test
 
 {
-    { { { "!" "lol" } } }
+    { { "!" "lol" } }
 } [ "!lol" string>literals >strings ] unit-test
 
 ! Colon
 {
-    { { ":asdf:" } }
+    { ":asdf:" }
 } [ ":asdf:" string>literals >strings ] unit-test
 
 {
-    { { { "one:" "1" } } }
+    { { "one:" "1" } }
 } [ "one: 1" string>literals >strings ] unit-test
 
 {
-    { { "1" } { ":>" } { "one" } }
+    { "1" ":>" "one" }
 } [ "1 :> one" string>literals >strings ] unit-test
 
 {
-    { { { ":" { "foo" } ";" } } }
+    { { ":" { "foo" } ";" } }
 } [ ": foo ;" string>literals >strings ] unit-test
 
 {
     {
-        { { "FOO:" { "a" } } }
-        { { "BAR:" { "b" } } }
+        { "FOO:" { "a" } }
+        { "BAR:" { "b" } }
     }
 } [ "FOO: a BAR: b" string>literals >strings ] unit-test
 
 {
-    {
-        { { "FOO:" { "a" } ";" } }
-    }
+    { { "FOO:" { "a" } ";" } }
 } [ "FOO: a ;" string>literals >strings ] unit-test
 
 {
-    {
-        { { "FOO:" { "a" } "FOO;" } }
-    }
+    { { "FOO:" { "a" } "FOO;" } }
 } [ "FOO: a FOO;" string>literals >strings ] unit-test
 
 
 ! Acute
 {
-    { { { "<A" { } "A>" } } }
+    { { "<A" { } "A>" } }
 } [ "<A A>" string>literals >strings ] unit-test
 
 {
-    { { { "<B:" { "hi" } ";B>" } } }
+    { { "<B:" { "hi" } ";B>" } }
 } [ "<B: hi ;B>" string>literals >strings ] unit-test
 
-{ { { "<foo>" } } } [ "<foo>" string>literals >strings ] unit-test
-{ { { ">foo<" } } } [ ">foo<" string>literals >strings ] unit-test
+{ { "<foo>" } } [ "<foo>" string>literals >strings ] unit-test
+{ { ">foo<" } } [ ">foo<" string>literals >strings ] unit-test
 
-{ { { "foo>" } } } [ "foo>" string>literals >strings ] unit-test
-{ { { ">foo" } } } [ ">foo" string>literals >strings ] unit-test
-{ { { ">foo>" } } } [ ">foo>" string>literals >strings ] unit-test
-{ { { ">>foo>" } } } [ ">>foo>" string>literals >strings ] unit-test
-{ { { ">>foo>>" } } } [ ">>foo>>" string>literals >strings ] unit-test
+{ { "foo>" } } [ "foo>" string>literals >strings ] unit-test
+{ { ">foo" } } [ ">foo" string>literals >strings ] unit-test
+{ { ">foo>" } } [ ">foo>" string>literals >strings ] unit-test
+{ { ">>foo>" } } [ ">>foo>" string>literals >strings ] unit-test
+{ { ">>foo>>" } } [ ">>foo>>" string>literals >strings ] unit-test
 
-{ { { "foo<" } } } [ "foo<" string>literals >strings ] unit-test
-{ { { "<foo" } } } [ "<foo" string>literals >strings ] unit-test
-{ { { "<foo<" } } } [ "<foo<" string>literals >strings ] unit-test
-{ { { "<<foo<" } } } [ "<<foo<" string>literals >strings ] unit-test
-{ { { "<<foo<<" } } } [ "<<foo<<" string>literals >strings ] unit-test
+{ { "foo<" } } [ "foo<" string>literals >strings ] unit-test
+{ { "<foo" } } [ "<foo" string>literals >strings ] unit-test
+{ { "<foo<" } } [ "<foo<" string>literals >strings ] unit-test
+{ { "<<foo<" } } [ "<<foo<" string>literals >strings ] unit-test
+{ { "<<foo<<" } } [ "<<foo<<" string>literals >strings ] unit-test
 
 ! Backslash \AVL{ foo\bar foo\bar{
 {
-    { { { "SYNTAX:" { "\\AVL{" } } } }
+    { { "SYNTAX:" { "\\AVL{" } } }
 } [ "SYNTAX: \\AVL{" string>literals >strings ] unit-test
 
 [ "\\" string>literals >strings ] must-fail ! \ alone should be legal eventually (?)
 
-{ { { "\\FOO" } } } [ "\\FOO" string>literals >strings ] unit-test
+{ { "\\FOO" } } [ "\\FOO" string>literals >strings ] unit-test
 
 {
-    { { "foo\\bar" } }
+    { "foo\\bar" }
 } [ "foo\\bar" string>literals >strings ] unit-test
 
 [ "foo\\bar{" string>literals >strings ] must-fail
 
 {
-    { { { "foo\\bar{" { "1" } "}" } } }
+    { { "foo\\bar{" { "1" } "}" } }
 } [ "foo\\bar{ 1 }" string>literals >strings ] unit-test
 
-{ { { { "char:" "\\{" } } } } [ "char: \\{" string>literals >strings ] unit-test
+{ { { "char:" "\\{" } } } [ "char: \\{" string>literals >strings ] unit-test
 [ "char: {" string>literals >strings ] must-fail
 [ "char: [" string>literals >strings ] must-fail
 [ "char: {" string>literals >strings ] must-fail
 [ "char: \"" string>literals >strings ] must-fail
-{ { { { "char:" "\\\\" } } } } [ "char: \\\\" string>literals >strings ] unit-test
+{ { { "char:" "\\\\" } } } [ "char: \\\\" string>literals >strings ] unit-test
 
 [ "char: \\" string>literals >strings ] must-fail ! char: \ should be legal eventually
 
-! \ backslash going away someday
+{ { { "\\" "(" } } } [ "\\ (" string>literals >strings ] unit-test
 
-{ { { { "\\" "(" } } } } [ "\\ (" string>literals >strings ] unit-test
-
-{ { { "\\[[" } } } [ "\\[[" string>literals >strings ] unit-test
-{ { { "\\[=[" } } } [ "\\[=[" string>literals >strings ] unit-test
-{ { { "\\[==[" } } } [ "\\[==[" string>literals >strings ] unit-test
+{ { "\\[[" } } [ "\\[[" string>literals >strings ] unit-test
+{ { "\\[=[" } } [ "\\[=[" string>literals >strings ] unit-test
+{ { "\\[==[" } } [ "\\[==[" string>literals >strings ] unit-test
 
 
 { t } [ "FOO:" strict-upper? ] unit-test
@@ -138,13 +128,22 @@ IN: modern.tests
 
 ! Strings
 {
-    { { { "url\"" "google.com" "\"" } } }
+    { { "url\"" "google.com" "\"" } }
 } [ [[ url"google.com" ]] string>literals >strings ] unit-test
 
 {
-    { { { "\"" "google.com" "\"" } } }
+    { { "\"" "google.com" "\"" } }
 } [ [[ "google.com" ]] string>literals >strings ] unit-test
 
+{
+    {
+        { "(" { "a" "b" } ")" }
+        { "[" { "a" "b" "+" } "]" }
+        { "(" { "c" } ")" }
+    }
+} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test
+
+![[
 ! Concatenated syntax
 {
     {
@@ -156,15 +155,6 @@ IN: modern.tests
     }
 } [ "( a b )[ a b + ]( c )" string>literals >strings ] unit-test
 
-{
-    {
-        { { "(" { "a" "b" } ")" } }
-        { { "[" { "a" "b" "+" } "]" } }
-        { { "(" { "c" } ")" } }
-    }
-} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test
-
-
 {
     {
         {
@@ -173,3 +163,4 @@ IN: modern.tests
         }
     }
 } [ "\"abc\"[ 0 ]" string>literals >strings ] unit-test
+]]