This is an automated email from the ASF dual-hosted git repository. kenhuuu pushed a commit to branch g2-param in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 1d5f6484e3247996891f41548c6ada08d376fa37 Author: Cole-Greer <[email protected]> AuthorDate: Wed Nov 27 18:27:58 2024 -0800 fix feature test --- .../gremlin/language/grammar/TraversalMethodVisitor.java | 13 +++++++------ .../gremlin/process/traversal/dsl/graph/GraphTraversal.java | 8 -------- 2 files changed, 7 insertions(+), 14 deletions(-) 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 d9c4702a5e..a31b01b0c4 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 @@ -1250,15 +1250,16 @@ public class TraversalMethodVisitor extends TraversalRootVisitor<GraphTraversal> return this.graphTraversal.option(TraversalEnumParser.parseTraversalEnumFromContext(Merge.class, ctx.traversalMerge()), (Map) null); } - if (ctx.genericLiteralMapNullableArgument().variable() != null) { + final Object literalOrVar = antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument()); + if (GValue.valueInstanceOf(literalOrVar, GType.MAP)) { return graphTraversal.option(TraversalEnumParser.parseTraversalEnumFromContext(Merge.class, ctx.traversalMerge()), - (Map) antlr.argumentVisitor.visitVariable(ctx.genericLiteralMapNullableArgument().variable()), + (GValue<Map<Object, Object>>) literalOrVar, + TraversalEnumParser.parseTraversalEnumFromContext(Cardinality.class, ctx.traversalCardinality())); + } else { + return graphTraversal.option(TraversalEnumParser.parseTraversalEnumFromContext(Merge.class, ctx.traversalMerge()), + (Map<Object, Object>) literalOrVar, TraversalEnumParser.parseTraversalEnumFromContext(Cardinality.class, ctx.traversalCardinality())); } - - return graphTraversal.option(TraversalEnumParser.parseTraversalEnumFromContext(Merge.class, ctx.traversalMerge()), - (Map) new GenericLiteralVisitor(antlr).visitGenericLiteralMap(ctx.genericLiteralMapNullableArgument().genericLiteralMap()), - TraversalEnumParser.parseTraversalEnumFromContext(Cardinality.class, ctx.traversalCardinality())); } /** diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java index 06a382d179..77c4b838e6 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java @@ -4554,14 +4554,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> { public default <M, E2> GraphTraversal<S, E> option(final Merge merge, final GValue<Map<Object, Object>> m, final VertexProperty.Cardinality cardinality) { this.asAdmin().getGremlinLang().addStep(GraphTraversal.Symbols.option, merge, m, cardinality); - final Map<Object, Object> map = m.get(); - - // do explicit cardinality for every single pair in the map - for (Object k : map.keySet()) { - final Object o = map.get(k); - if (!(o instanceof CardinalityValueTraversal)) - map.put(k, new CardinalityValueTraversal(cardinality, o)); - } ((TraversalOptionParent<M, E, E2>) this.asAdmin().getEndStep()).addChildOption((M) merge, (Traversal.Admin<E, E2>) new ConstantTraversal<>(m).asAdmin()); return this; }
