This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch gvalue-feature-tests
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 28bdeeba3b56308b166f41eb754d046ed826e8c3
Author: Cole-Greer <[email protected]>
AuthorDate: Sun Nov 24 18:54:17 2024 -0800

    fix tests
---
 .../gremlin/language/grammar/ArgumentVisitor.java  |  21 ++--
 .../language/grammar/GenericLiteralVisitor.java    |   2 -
 .../language/grammar/TraversalMethodVisitor.java   |   2 +-
 .../gremlin/process/traversal/dsl/graph/__.java    |  11 ++
 .../gremlin/process/traversal/step/GValue.java     |   3 +
 .../process/traversal/step/branch/RepeatStep.java  |   4 +-
 .../language/grammar/ArgumentVisitorTest.java      | 112 +++++++++++++--------
 .../grammar/TraversalMethodVisitorTest.java        |  15 +--
 .../language/translator/GremlinTranslatorTest.java |  10 +-
 .../remote/EmbeddedRemoteConnectionTest.java       |   5 +-
 .../gremlin/process/traversal/GremlinLangTest.java |  17 ++--
 .../dsl/graph/GraphTraversalSourceTest.java        |   5 +-
 .../gremlin/server/HttpDriverIntegrateTest.java    |   5 +-
 13 files changed, 125 insertions(+), 87 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
index e72ea7c826..46ada3e6b6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
@@ -39,25 +39,16 @@ public class ArgumentVisitor extends 
DefaultGremlinBaseVisitor<Object> {
         this.antlr = antlr;
     }
 
-    /**
-     * Wrapper for visit function for object types.
-     */
-    public Object parseObject(final 
GremlinParser.GenericLiteralArgumentContext ctx) {
-        return visitGenericLiteralArgument(ctx);
-    }
-
-    /**
-     * Wrapper for visit function for {@link Vertex} types.
-     */
-    public Vertex parseVertex(final GremlinParser.StructureVertexContext ctx) {
-        return antlr.structureVisitor.visitStructureVertex(ctx);
-    }
-
     /**
      * Wrapper for visit function for {@code Map} types.
      */
     public Map parseMap(final 
GremlinParser.GenericLiteralMapNullableArgumentContext ctx) {
-        return (Map) visitGenericLiteralMapNullableArgument(ctx);
+        Object literalOrVar = visitGenericLiteralMapNullableArgument(ctx);
+        if (GValue.valueInstanceOf(literalOrVar, GType.MAP)) {
+            return ((GValue<Map>) literalOrVar).get();
+        } else {
+            return (Map) literalOrVar;
+        }
     }
 
     /**
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index 9f28d4c76c..0f86540636 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -365,8 +365,6 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor<Object> {
         return literalMap;
     }
 
-
-
     /**
      * {@inheritDoc}
      */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 035e9faf69..63a43cf8d0 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -1095,7 +1095,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor<GraphTraversal>
         } else if (ctx.ioOptionsValues() != null) {
             o = 
WithOptionsVisitor.instance().visitIoOptionsValues(ctx.ioOptionsValues());
         } else {
-            o = 
antlr.argumentVisitor.parseObject(ctx.genericLiteralArgument());
+            o = 
antlr.argumentVisitor.visitGenericLiteralArgument(ctx.genericLiteralArgument());
         }
         return graphTraversal.with(k, o);
     }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 5d24f70d44..615a3a96f1 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -26,9 +26,12 @@ import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.FormatStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Column;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -1132,6 +1135,14 @@ public class __ {
         return __.<A>start().has(label, propertyKey, value);
     }
 
+    /**
+     * @see GraphTraversal#has(GValue, String, P)
+     */
+    public static <A> GraphTraversal<A, A> has(final GValue<String> label, 
final String propertyKey, final P<?> predicate) {
+        return __.<A>start().has(label, propertyKey, predicate);
+    }
+
+
     /**
      * @see GraphTraversal#has(GValue, String, Object)
      */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index 0608d94a19..b0d2fdc6fc 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
@@ -52,6 +52,9 @@ public class GValue<V> implements Cloneable, Serializable {
     }
 
     private GValue(final String name, final GType type, final V value) {
+        if (name != null && name.startsWith("_")) {
+            throw new IllegalArgumentException(String.format("Invalid GValue 
name [%s]. Should not start with _.", name));
+        }
         this.name = name;
         this.type = type;
         this.value = value;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
index 73414cf290..9e852bf388 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
@@ -179,9 +179,11 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
 
     @Override
     public int hashCode() {
-        int result = super.hashCode() ^ this.repeatTraversal.hashCode();
+        int result = super.hashCode();
         result ^= Boolean.hashCode(this.untilFirst);
         result ^= Boolean.hashCode(this.emitFirst) << 1;
+        if (this.repeatTraversal != null)
+            result ^= this.repeatTraversal.hashCode();
         if (this.loopName != null)
             result ^= this.loopName.hashCode();
         if (this.untilTraversal != null)
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
index fc16ef4ac1..ab5fbdcecb 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
@@ -31,6 +31,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
 import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.Column;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.T;
@@ -84,56 +85,67 @@ public class ArgumentVisitorTest {
     public static Iterable<Object[]> generateTestParameters() {
         return Arrays.asList(new Object[][]{
                 {Boolean.class, "x", new VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {Boolean.class, "true", true, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", true)))},
-                {Boolean.class, "false", false, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", true)))},
+                {Boolean.class, "true", true, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", true)))},
+                {Boolean.class, "false", false, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", true)))},
+                {Boolean.class, "x", GValue.of("x", true), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", true)))},
                 {Boolean.class, "x", true, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", true)))},
                 {Integer.class, "x", new VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {Integer.class, "0", 0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 100)))},
-                {Integer.class, "0i", 0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 100)))},
-                {Integer.class, "0L", 0L, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 100)))},
+                {Integer.class, "0", 0, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+                {Integer.class, "0i", 0, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+                {Integer.class, "0L", 0L, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+                {Integer.class, "x", GValue.of("x", 0), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0)))},
+                {Integer.class, "x", GValue.of("x", 0L), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0L)))},
                 {Integer.class, "x", 0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0)))},
                 {Integer.class, "x", 0L, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0L)))},
                 {Float.class, "x", new VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {Float.class, "0.0d", 0.0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 1000.0)))},
-                {Float.class, "0d", 0.0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 1000.0)))},
-                {Float.class, "0F", 0.0F, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 1000.0F)))},
+                {Float.class, "0.0d", 0.0, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 1000.0)))},
+                {Float.class, "0d", 0.0, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 1000.0)))},
+                {Float.class, "0F", 0.0F, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 1000.0F)))},
+                {Float.class, "x", GValue.of("x", 0.0), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0.0)))},
+                {Float.class, "x", GValue.of("x", 0.0F), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0.0F)))},
                 {Float.class, "x", 0.0, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0.0)))},
                 {Float.class, "x", 0.0F, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0.0F)))},
                 {String.class, "x", new VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {String.class, "'test'", "test", createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {String.class, "'test'", "test", createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {String.class, "x", GValue.of("x", "test"), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "test")))},
+                {String.class, "x", GValue.of("x", "graphson"), 
createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 
IO.graphson)))},
                 {String.class, "x", "test", createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "test")))},
                 {String.class, "x", "graphson", createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 
IO.graphson)))},
                 {StringNullable.class, "x", new 
VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {StringNullable.class, "null", null, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {StringNullable.class, "null", null, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {StringNullable.class, "x", GValue.of("x", null), 
createAntlr(new VariableResolver.DefaultVariableResolver(nullMap))},
                 {StringNullable.class, "x", null, createAntlr(new 
VariableResolver.DirectVariableResolver(nullMap))},
                 {Object.class, "x", new VariableResolverException("x"), 
createAntlr(VariableResolver.NoVariableResolver.instance())},
-                {Object.class, "'test'", "test", createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Object.class, "'test'", "test", createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Object.class, "x", GValue.of("x", "test"), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "test")))},
+                {Object.class, "x", GValue.of("x", now), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", now)))},
                 {Object.class, "x", "test", createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "test")))},
                 {Object.class, "x", now, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", now)))},
-                {Object.class, "[1,2,3]", Arrays.asList(1, 2, 3), 
createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", now)))},
+                {Object.class, "[1,2,3]", Arrays.asList(1, 2, 3), 
createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", now)))},
+                {Object.class, "x", GValue.of("x", P.eq(100)), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", P.eq(100))))},
                 {Object.class, "x", P.eq(100), createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", P.eq(100))))},
-                {Direction.class, "Direction.OUT", Direction.OUT, 
createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Direction.class, "OUT", Direction.OUT, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Vertex.class, "new Vertex(1i,'person')", new 
ReferenceVertex(1, "person"), createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 
Direction.from)))},
-                {Order.class, "Order.desc", Order.desc, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Scope.class, "Scope.local", Scope.local, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Scope.class, "local", Scope.local, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {T.class, "T.label", T.label, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {T.class, "label", T.label, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {VertexProperty.Cardinality.class, "Cardinality.list", 
VertexProperty.Cardinality.list, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {VertexProperty.Cardinality.class, "list", 
VertexProperty.Cardinality.list, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {DT.class, "DT.hour", DT.hour, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {DT.class, "hour", DT.hour, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Merge.class, "Merge.onMatch", Merge.onMatch, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Merge.class, "onMatch", Merge.onMatch, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Pop.class, "Pop.last", Pop.last, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Pop.class, "last", Pop.last, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Operator.class, "Operator.sum", Operator.sum, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Operator.class, "sum", Operator.sum, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Column.class, "Column.keys", Column.keys, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {Column.class, "keys", Column.keys, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {SackFunctions.Barrier.class, "Barrier.normSack", 
SackFunctions.Barrier.normSack, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
-                {SackFunctions.Barrier.class, "Barrier.normSack", 
SackFunctions.Barrier.normSack, createAntlr(new 
VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Direction.class, "Direction.OUT", Direction.OUT, 
createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Direction.class, "OUT", Direction.OUT, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Vertex.class, "new Vertex(1i,'person')", new 
ReferenceVertex(1, "person"), createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 
Direction.from)))},
+                {Order.class, "Order.desc", Order.desc, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Scope.class, "Scope.local", Scope.local, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Scope.class, "local", Scope.local, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {T.class, "T.label", T.label, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {T.class, "label", T.label, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {VertexProperty.Cardinality.class, "Cardinality.list", 
VertexProperty.Cardinality.list, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {VertexProperty.Cardinality.class, "list", 
VertexProperty.Cardinality.list, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {DT.class, "DT.hour", DT.hour, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {DT.class, "hour", DT.hour, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Merge.class, "Merge.onMatch", Merge.onMatch, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Merge.class, "onMatch", Merge.onMatch, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Pop.class, "Pop.last", Pop.last, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Pop.class, "last", Pop.last, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Operator.class, "Operator.sum", Operator.sum, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Operator.class, "sum", Operator.sum, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Column.class, "Column.keys", Column.keys, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {Column.class, "keys", Column.keys, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {SackFunctions.Barrier.class, "Barrier.normSack", 
SackFunctions.Barrier.normSack, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
+                {SackFunctions.Barrier.class, "Barrier.normSack", 
SackFunctions.Barrier.normSack, createAntlr(new 
VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", "nope")))},
         });
     }
 
@@ -141,15 +153,35 @@ public class ArgumentVisitorTest {
     public void shouldParse() {
         final GremlinLexer lexer = new 
GremlinLexer(CharStreams.fromString(script));
         final GremlinParser parser = new GremlinParser(new 
CommonTokenStream(lexer));
-        if (clazz.equals(StringNullable.class)) {
+        if (clazz.equals(Boolean.class)) {
+            assertParsing(() -> {
+                final GremlinParser.BooleanArgumentContext ctx = 
parser.booleanArgument();
+                return 
antlrToLanguage.argumentVisitor.visitBooleanArgument(ctx);
+            });
+        } else if (clazz.equals(Integer.class)) {
+            assertParsing(() -> {
+                final GremlinParser.IntegerArgumentContext ctx = 
parser.integerArgument();
+                return 
antlrToLanguage.argumentVisitor.visitIntegerArgument(ctx);
+            });
+        } else if (clazz.equals(Float.class)) {
+            assertParsing(() -> {
+                final GremlinParser.FloatArgumentContext ctx = 
parser.floatArgument();
+                return antlrToLanguage.argumentVisitor.visitFloatArgument(ctx);
+            });
+        } else if (clazz.equals(String.class)) {
+            assertParsing(() -> {
+                final GremlinParser.StringArgumentContext ctx = 
parser.stringArgument();
+                return 
antlrToLanguage.argumentVisitor.visitStringArgument(ctx);
+            });
+        } else if (clazz.equals(StringNullable.class)) {
             assertParsing(() -> {
                 final GremlinParser.StringNullableArgumentContext ctx = 
parser.stringNullableArgument();
-                return antlrToLanguage.argumentVisitor.parseString(ctx);
+                return 
antlrToLanguage.argumentVisitor.visitStringNullableArgument(ctx);
             });
         } else if (clazz.equals(Object.class)) {
             assertParsing(() -> {
                 final GremlinParser.GenericLiteralArgumentContext ctx = 
parser.genericLiteralArgument();
-                return antlrToLanguage.argumentVisitor.parseObject(ctx);
+                return 
antlrToLanguage.argumentVisitor.visitGenericLiteralArgument(ctx);
             });
         } else if (clazz.equals(List.class)) {
             assertParsing(() -> {
@@ -160,8 +192,8 @@ public class ArgumentVisitorTest {
             assertParsing(() -> 
TraversalEnumParser.parseTraversalEnumFromContext(Direction.class, 
parser.traversalDirection()));
         } else if (clazz.equals(Vertex.class)) {
             assertParsing(() -> {
-                final GremlinParser.StructureVertexContext ctx = 
parser.structureVertex();
-                return antlrToLanguage.argumentVisitor.parseVertex(ctx);
+                final GremlinParser.StructureVertexArgumentContext ctx = 
parser.structureVertexArgument();
+                return 
antlrToLanguage.argumentVisitor.visitStructureVertexArgument(ctx);
             });
         } else if (clazz.equals(Order.class)) {
             assertParsing(() -> 
TraversalEnumParser.parseTraversalEnumFromContext(Order.class, 
parser.traversalOrder()));
@@ -205,4 +237,4 @@ public class ArgumentVisitorTest {
     }
 
     private static class StringNullable { }
-}
+}
\ No newline at end of file
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
index cc4f0c1fd9..ebc253ee74 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
@@ -29,6 +29,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Pop;
 import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.WithOptions;
 import org.apache.tinkerpop.gremlin.structure.Column;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -69,8 +70,8 @@ public class TraversalMethodVisitorTest {
     }
     
     private void compare(Object expected, Object actual) {
-        assertEquals(((DefaultGraphTraversal) 
expected).asAdmin().getGremlinLang(),
-                ((DefaultGraphTraversal) actual).asAdmin().getGremlinLang());
+        assertEquals(((DefaultGraphTraversal) expected).asAdmin(),
+                ((DefaultGraphTraversal) actual).asAdmin());
     }
 
     @Test
@@ -124,7 +125,7 @@ public class TraversalMethodVisitorTest {
 
     @Test
     public void shouldParseTraversalMethod_and() throws Exception {
-        compare(g.V().and(outE("knows")), eval("g.V().and(outE('knows'))"));
+        compare(g.V().and(outE(GValue.of("knows"))), 
eval("g.V().and(outE('knows'))"));
     }
 
     @Test
@@ -158,12 +159,12 @@ public class TraversalMethodVisitorTest {
 
     @Test
     public void shouldParseTraversalMethod_both_SingleString() throws 
Exception {
-        compare(g.V().both("test"), eval("g.V().both('test')"));
+        compare(g.V().both(GValue.of("test")), eval("g.V().both('test')"));
     }
 
     @Test
     public void shouldParseTraversalMethod_both_MultiString() throws Exception 
{
-        compare(g.V().both(new String[]{"a", "b"}), eval("g.V().both('a', 
'b')"));
+        compare(g.V().both(new GValue[]{GValue.of("a"), GValue.of("b")}), 
eval("g.V().both('a', 'b')"));
     }
 
     @Test
@@ -529,7 +530,7 @@ public class TraversalMethodVisitorTest {
 
     @Test
     public void shouldParseTraversalMethod_inE() throws Exception {
-        compare(g.V().inE("created"), eval("g.V().inE('created')"));
+        compare(g.V().inE(GValue.of("created")), eval("g.V().inE('created')"));
     }
 
     @Test
@@ -962,7 +963,7 @@ public class TraversalMethodVisitorTest {
 
     @Test
     public void shouldParseTraversalMethod_to_Direction_String() throws 
Exception {
-        compare(g.V().to(Direction.IN, "asd"), eval("g.V().to(IN, 'asd')"));
+        compare(g.V().to(Direction.IN, GValue.of("asd")), eval("g.V().to(IN, 
'asd')"));
     }
 
     @Test
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
index 82e3461cc5..3858b265f2 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
@@ -48,7 +48,7 @@ public class GremlinTranslatorTest {
         public static Collection<Object[]> data() {
             return Arrays.asList(new Object[][]{
                     {"g.V(l1)", Collections.singletonList("l1")},
-                    {"g.V().hasLabel('person').has(x, 
y).as('a').out('knows').as('b').select('a', 'b')", Arrays.asList("x", "y")},
+                    {"g.V().hasLabel('person').has('key', 
y).as('a').out('knows').as('b').select('a', 'b')", 
Collections.singletonList("y")},
                     {"g.V(x).map(out(y).count())", Arrays.asList("x", "y")},
             });
         }
@@ -1063,11 +1063,11 @@ public class GremlinTranslatorTest {
                             "g.V().limit(1l)",
                             "g.V().limit(1)",
                             "g.V().limit(long(1))"},
-                    {"g.V().limit(x)",
-                            null,
+                    {"g.V().limit(1)",
                             null,
-                            "g.V().Limit<object>(x)",
-                            "g.V().Limit(x)",
+                            "g.V().limit(number0)",
+                            "g.V().Limit<object>(1)",
+                            "g.V().Limit(1)",
                             null,
                             null,
                             null,
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnectionTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnectionTest.java
index ad5a75c7a3..1f3d237620 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnectionTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnectionTest.java
@@ -19,13 +19,12 @@
 package org.apache.tinkerpop.gremlin.process.remote;
 
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
 import org.junit.Test;
 
 import static 
org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;
-import static 
org.apache.tinkerpop.gremlin.process.traversal.GremlinLang.Parameter.value;
-import static 
org.apache.tinkerpop.gremlin.process.traversal.GremlinLang.Parameter.var;
 import static org.junit.Assert.assertEquals;
 
 public class EmbeddedRemoteConnectionTest {
@@ -42,6 +41,6 @@ public class EmbeddedRemoteConnectionTest {
         final Graph graph = EmptyGraph.instance();
         final GraphTraversalSource g = graph.traversal();
         final GraphTraversalSource simulatedRemoteG = traversal().with(new 
EmbeddedRemoteConnection(g));
-        assertEquals(33, simulatedRemoteG.inject(value(11), var("x", 
22)).sum().next());
+        assertEquals(33, simulatedRemoteG.inject(GValue.of(11), GValue.of("x", 
22)).sum().next());
     }
 }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
index 47318fafc3..d21beed912 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang.Parameter;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
@@ -120,7 +121,7 @@ public class GremlinLangTest {
                         "g.withStrategies(new 
SubgraphStrategy(checkAdjacentVertices:true,vertices:__.hasLabel(\"person\"))).V()",},
                 
{g.withStrategies(SubgraphStrategy.build().vertices(__.has("name", 
P.within("josh", "lop", "ripple"))).create()).V(),
                         "g.withStrategies(new 
SubgraphStrategy(checkAdjacentVertices:true,vertices:__.has(\"name\",P.within([\"josh\",\"lop\",\"ripple\"])))).V()"},
-                {g.inject(Parameter.var("x", "x")).V(Parameter.var("ids", new 
int[]{1, 2, 3})), "g.inject(x).V(ids)"},
+                {g.inject(GValue.of("x", "x")).V(GValue.of("ids", new int[]{1, 
2, 3})), "g.inject(x).V(ids)"},
                 {newG().inject(Parameter.value("test1"), 
Parameter.value("test2")), "g.inject(_0,_1)"},
                 {newG().inject(new HashSet<>(Arrays.asList(1, 2))), 
"g.inject({1,2})"},
         });
@@ -130,35 +131,35 @@ public class GremlinLangTest {
 
         @Test(expected = IllegalArgumentException.class)
         public void shouldCheckParameterNameDontNeedEscaping() {
-            g.V(GremlinLang.Parameter.var("\"", new int[]{1, 2, 3}));
+            g.V(GValue.of("\"", new int[]{1, 2, 3}));
         }
 
         @Test(expected = IllegalArgumentException.class)
         public void shouldCheckParameterNameIsNotNumber() {
-            g.V(GremlinLang.Parameter.var("1", new int[]{1, 2, 3}));
+            g.V(GValue.of("1", new int[]{1, 2, 3}));
         }
 
         @Test(expected = IllegalArgumentException.class)
         public void shouldCheckParameterNameIsValidIdentifier() {
-            g.V(GremlinLang.Parameter.var("1a", new int[]{1, 2, 3}));
+            g.V(GValue.of("1a", new int[]{1, 2, 3}));
         }
 
         @Test(expected = IllegalArgumentException.class)
         public void shouldCheckParameterNameIsNotReserved() {
-            g.V(GremlinLang.Parameter.var("_1", new int[]{1, 2, 3}));
+            g.V(GValue.of("_1", new int[]{1, 2, 3}));
         }
 
         @Test(expected = IllegalArgumentException.class)
         public void shouldNowAllowParameterNameDuplicates() {
-            final GremlinLang gremlin = g.inject(Parameter.var("ids", new 
int[]{1, 2})).V(Parameter.var("ids", new int[]{2, 3}))
+            final GremlinLang gremlin = g.inject(GValue.of("ids", new int[]{1, 
2})).V(GValue.of("ids", new int[]{2, 3}))
                     .asAdmin().getGremlinLang();
         }
 
         @Test
         public void shouldAllowToUseSameParameterTwice() {
             final int[] value = new int[]{1, 2, 3};
-            final Parameter p = Parameter.var("ids", value);
-            final GremlinLang gremlin = 
g.inject(p).V(p).asAdmin().getGremlinLang();
+            final GValue<int[]> gValue = GValue.of("ids", value);
+            final GremlinLang gremlin = 
g.inject(gValue).V(gValue).asAdmin().getGremlinLang();
 
             assertEquals("g.inject(ids).V(ids)", gremlin.getGremlin());
             assertEquals(value, gremlin.getParameters().get("ids"));
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
index fb96db1f6f..83bc03ad44 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
@@ -23,6 +23,7 @@ import 
org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Order;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
 import org.apache.tinkerpop.gremlin.structure.T;
@@ -167,7 +168,7 @@ public class GraphTraversalSourceTest {
         assertThat(g.getGremlinLang().getOptionsStrategies().isEmpty(), 
is(true));
 
         assertThat(g.getGremlinLang().getParameters().isEmpty(), is(true));
-        GremlinLang lang = g.V(value(11)).asAdmin().getGremlinLang();
+        GremlinLang lang = g.V(GValue.of(11)).asAdmin().getGremlinLang();
         assertThat(g.getGremlinLang().getParameters().isEmpty(), is(true));
         assertThat(lang.getParameters().size(), is(1));
         assertThat(lang.getParameters().values(), containsInAnyOrder(11));
@@ -175,7 +176,7 @@ public class GraphTraversalSourceTest {
         paramMatcher.find();
         assertThat(lang.getParameters().keySet(), 
containsInAnyOrder(paramMatcher.group()));
 
-        lang = g.V(value(22)).asAdmin().getGremlinLang();
+        lang = g.V(GValue.of(22)).asAdmin().getGremlinLang();
         assertThat(g.getGremlinLang().getParameters().isEmpty(), is(true));
         assertThat(lang.getParameters().size(), is(1));
         assertThat(lang.getParameters().values(), containsInAnyOrder(22));
diff --git 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/HttpDriverIntegrateTest.java
 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/HttpDriverIntegrateTest.java
index 87a1ed5476..cff1068097 100644
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/HttpDriverIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/HttpDriverIntegrateTest.java
@@ -88,9 +88,8 @@ public class HttpDriverIntegrateTest extends 
AbstractGremlinServerIntegrationTes
         final Cluster cluster = TestClientFactory.build().create();
         final Client client = cluster.connect();
         try {
-            final RequestOptions ro = 
RequestOptions.build().language("gremlin-lang").
-                    addParameter("x", "Good bye, world!").create();
-            client.submit("g.inject(1).fail(x)", ro).all().get();
+            final RequestOptions ro = 
RequestOptions.build().language("gremlin-lang").create();
+            client.submit("g.inject(1).fail('Good bye, world!')", 
ro).all().get();
             fail("should throw exception");
         } catch (Exception ex) {
             final Throwable inner = ExceptionHelper.getRootCause(ex);


Reply via email to