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

colegreer pushed a commit to branch fixTraversalBoxingInPlaceholders
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 2b0c758f90aef1c26970ded826c9ee65a0aa137e
Author: Cole-Greer <[email protected]>
AuthorDate: Fri Sep 26 13:54:09 2025 -0700

    CTR avoid boxing label and elementId as Traversals in AddVertex and AddEdge 
step placeholders
---
 .../traversal/dsl/graph/GraphTraversal.java        |  40 +++---
 .../step/map/AbstractAddEdgeStepPlaceholder.java   |   5 +
 .../map/AbstractAddElementStepPlaceholder.java     | 148 +++++++++++----------
 .../step/map/AbstractAddVertexStepPlaceholder.java |  20 +--
 .../traversal/step/map/AddEdgeStartStep.java       |   5 +
 .../step/map/AddEdgeStartStepPlaceholder.java      |   9 +-
 .../process/traversal/step/map/AddEdgeStep.java    |   5 +
 .../traversal/step/map/AddEdgeStepPlaceholder.java |   9 +-
 .../traversal/step/map/AddElementStepContract.java |   2 +
 .../traversal/step/map/AddVertexStartStep.java     |   5 +
 .../step/map/AddVertexStartStepPlaceholder.java    |  10 +-
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../step/map/AddVertexStepPlaceholder.java         |   9 +-
 .../traversal/step/TraversalParentTest.java        |  30 ++---
 .../ReservedKeysVerificationStrategyTest.java      |   1 -
 15 files changed, 181 insertions(+), 122 deletions(-)

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 a6f63953aa..d493ec805d 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
@@ -99,9 +99,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.TimeLimitStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.WherePredicateStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTraversalStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AsBoolStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AsDateStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AsNumberStep;
@@ -189,7 +186,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.TrimGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.TrimLocalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.UnfoldStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AddPropertyStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.FailStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountSideEffectStep;
@@ -1374,7 +1370,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * Adds a {@link Vertex}.
      *
      * @param vertexLabel the label of the {@link Vertex} to add
-     * @return the traversal with the {@link AddVertexStep} added
+     * @return the traversal with the {@link AddVertexStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addvertex-step";
 target="_blank">Reference Documentation - AddVertex Step</a>
      * @since 3.1.0-incubating
      */
@@ -1387,7 +1383,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
     /**
      * Adds a {@link Vertex} with a vertex label determined by a {@link 
Traversal}.
      *
-     * @return the traversal with the {@link AddVertexStep} added
+     * @return the traversal with the {@link AddVertexStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addvertex-step";
 target="_blank">Reference Documentation - AddVertex Step</a>
      * @since 3.3.1
      */
@@ -1401,7 +1397,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * Adds a {@link Vertex}.
      *
      * @param vertexLabel the label of the {@link Vertex} to add
-     * @return the traversal with the {@link AddVertexStep} added
+     * @return the traversal with the {@link AddVertexStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addvertex-step";
 target="_blank">Reference Documentation - AddVertex Step</a>
      * @since 3.8.0
      */
@@ -1414,13 +1410,13 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
     /**
      * Adds a {@link Vertex} with a default vertex label.
      *
-     * @return the traversal with the {@link AddVertexStep} added
+     * @return the traversal with the {@link AddVertexStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addvertex-step";
 target="_blank">Reference Documentation - AddVertex Step</a>
      * @since 3.1.0-incubating
      */
     public default GraphTraversal<S, Vertex> addV() {
         this.asAdmin().getBytecode().addStep(Symbols.addV);
-        return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), 
(String) null));
+        return this.asAdmin().addStep(new 
AddVertexStepPlaceholder<>(this.asAdmin(), (String) null));
     }
 
     /**
@@ -1543,7 +1539,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * Adds an {@link Edge} with the specified edge label.
      *
      * @param edgeLabel the label of the newly added edge
-     * @return the traversal with the {@link AddEdgeStep} added
+     * @return the traversal with the {@link AddEdgeStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - AddEdge Step</a>
      * @since 3.1.0-incubating
      */
@@ -1556,7 +1552,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
     /**
      * Adds a {@link Edge} with an edge label determined by a {@link 
Traversal}.
      *
-     * @return the traversal with the {@link AddEdgeStep} added
+     * @return the traversal with the {@link AddEdgeStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - AddEdge Step</a>
      * @since 3.3.1
      */
@@ -1570,7 +1566,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * Adds an {@link Edge} with the specified edge label.
      *
      * @param edgeLabel the label of the newly added edge
-     * @return the traversal with the {@link AddEdgeStep} added
+     * @return the traversal with the {@link AddEdgeStepContract} added
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - AddEdge Step</a>
      * @since 3.8.0
      */
@@ -1604,7 +1600,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * outgoing vertex of the newly added {@link Edge}.
      *
      * @param fromVertex the vertex for selecting the outgoing vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.8.0
      */
@@ -1624,7 +1620,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * outgoing vertex of the newly added {@link Edge}.
      *
      * @param fromVertex the vertex for selecting the outgoing vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.3.0
      */
@@ -1663,7 +1659,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * incoming vertex of the newly added {@link Edge}.
      *
      * @param toVertex the vertex for selecting the incoming vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.8.0
      */
@@ -1683,7 +1679,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * incoming vertex of the newly added {@link Edge}.
      *
      * @param toVertex the traversal for selecting the incoming vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.1.0-incubating
      */
@@ -1703,7 +1699,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * outgoing vertex of the newly added {@link Edge}.
      *
      * @param fromVertex the traversal for selecting the outgoing vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.1.0-incubating
      */
@@ -1723,7 +1719,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * incoming vertex of the newly added {@link Edge}.
      *
      * @param toVertex the vertex for selecting the incoming vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.3.0
      */
@@ -1751,7 +1747,7 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * outgoing vertex of the newly added {@link Edge}.
      *
      * @param fromVertex the vertex for selecting the outgoing vertex
-     * @return the traversal with the modified {@link AddEdgeStep}
+     * @return the traversal with the modified {@link AddEdgeStepContract}
      * @see <a 
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step";
 target="_blank">Reference Documentation - From Step</a>
      * @since 3.3.0
      */
@@ -3804,9 +3800,9 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * {@link #property(Object, Object, Object...)} with the difference that 
the {@link VertexProperty.Cardinality}
      * can be supplied.
      * <p/>* 
-     * Generally speaking, this method will append an {@link AddPropertyStep} 
to the {@link Traversal} but when
-     * possible, this method will attempt to fold key/value pairs into an 
{@link AddVertexStep}, {@link AddEdgeStep} or
-     * {@link AddVertexStartStep}.  This potential optimization can only 
happen if cardinality is not supplied
+     * Generally speaking, this method will append an {@link 
AddPropertyStepContract} to the {@link Traversal} but when
+     * possible, this method will attempt to fold key/value pairs into an 
{@link AddVertexStepContract} or {@link AddEdgeStepContract}.
+     * This potential optimization can only happen if cardinality is not 
supplied
      * and when meta-properties are not included.
      *
      * @param cardinality the specified cardinality of the property where 
{@code null} will allow the {@link Graph}
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddEdgeStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddEdgeStepPlaceholder.java
index a5d9c46600..2f4b022354 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddEdgeStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddEdgeStepPlaceholder.java
@@ -45,6 +45,11 @@ public abstract class AbstractAddEdgeStepPlaceholder<S> 
extends AbstractAddEleme
         super(traversal, labelTraversal);
     }
 
+    @Override
+    protected String getDefaultLabel() {
+        return Edge.DEFAULT_LABEL;
+    }
+
     @Override
     public void addTo(final Traversal.Admin<?, ?> toObject) {
         addTraversal(toObject);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddElementStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddElementStepPlaceholder.java
index 4083168269..012af45132 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddElementStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddElementStepPlaceholder.java
@@ -33,7 +33,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequire
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.T;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -42,38 +41,41 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Set;
 
 public abstract class AbstractAddElementStepPlaceholder<S, E extends Element, 
X extends Event> extends ScalarMapStep<S, E>
         implements AddElementStepContract<S, E>, GValueHolder<S, E>, 
Writing<X> {
 
-    protected Traversal.Admin<S, String> label;
+    protected Object label;
     protected Map<Object, List<Object>> properties = new HashMap<>();
-    protected Traversal.Admin<S, Object> elementId;
+    protected Object elementId;
     protected Set<String> scopeKeys = new HashSet<>();
 
-    public AbstractAddElementStepPlaceholder(final Traversal.Admin traversal, 
final String label) {
-        this(traversal, label == null ? null : new ConstantTraversal<>(label));
+    protected AbstractAddElementStepPlaceholder(final Traversal.Admin 
traversal, final String label) {
+        super(traversal);
+        this.label = label == null ? this.getDefaultLabel() : label;
     }
 
-    public AbstractAddElementStepPlaceholder(final Traversal.Admin traversal, 
final GValue<String> label) {
-        this(traversal.asAdmin(), label == null ? null : new 
GValueConstantTraversal<>(label));
+    protected AbstractAddElementStepPlaceholder(final Traversal.Admin 
traversal, final GValue<String> label) {
+        super(traversal);
+        this.label = label == null ? this.getDefaultLabel() : label;
+        if (label.isVariable()) {
+            traversal.getGValueManager().register(label);
+        }
     }
 
-    public AbstractAddElementStepPlaceholder(final Traversal.Admin traversal, 
final Traversal.Admin<S,String> labelTraversal) {
+    protected AbstractAddElementStepPlaceholder(final Traversal.Admin 
traversal, final Traversal.Admin<S,String> labelTraversal) {
         super(traversal);
-        if (labelTraversal == null) {
-            throw new IllegalArgumentException("The label provided must not be 
null");
-        }
-        this.label = labelTraversal;
+        this.label = labelTraversal == null ? this.getDefaultLabel() : 
labelTraversal;
         if (labelTraversal instanceof GValueConstantTraversal) {
             traversal.getGValueManager().register(((GValueConstantTraversal<S, 
String>) labelTraversal).getGValue());
         }
         addTraversal(labelTraversal);
     }
 
+    protected abstract String getDefaultLabel();
+
     @Override
     public Set<String> getScopeKeys() {
         return Collections.unmodifiableSet(scopeKeys);
@@ -97,11 +99,11 @@ public abstract class AbstractAddElementStepPlaceholder<S, 
E extends Element, X
                 }
             }
         }
-        if (label != null) {
-            childTraversals.add(label);
+        if (label != null && label instanceof Traversal) {
+            childTraversals.add(((Traversal<?, ?>) label).asAdmin());
         }
-        if (elementId != null) {
-            childTraversals.add(elementId);
+        if (elementId != null && elementId instanceof Traversal) {
+            childTraversals.add(((Traversal<?, ?>) elementId).asAdmin());
         }
         return childTraversals;
     }
@@ -128,11 +130,14 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
         if (label != null) {
             hash ^= label.hashCode();
         }
+        if (elementId != null) {
+            hash ^= elementId.hashCode();
+        }
         if (properties != null) {
             for (Map.Entry<Object, List<Object>> entry : 
properties.entrySet()) {
                 hash ^= Objects.hashCode(entry.getKey());
                 hash ^= Objects.hashCode(entry.getValue());
-            };
+            }
         }
         return hash;
     }
@@ -144,19 +149,15 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
             }
         }
         if (elementId != null) {
-            if (elementId instanceof GValueConstantTraversal || elementId 
instanceof ConstantTraversal) {
-                step.setElementId(this.elementId.next());
-            } else {
-                step.setElementId(this.elementId);
-            }
+            step.setElementId(elementId instanceof GValue ? ((GValue<?>) 
elementId).get() : elementId);
         }
         TraversalHelper.copyLabels(this, step, false);
     }
 
     @Override
     public boolean isParameterized() {
-        if (label instanceof GValueConstantTraversal && 
((GValueConstantTraversal<S, String>) label).isParameterized() ||
-                (elementId instanceof GValueConstantTraversal && 
((GValueConstantTraversal<S, Object>) elementId).isParameterized())) {
+        if (label instanceof GValue && ((GValue<?>) label).isVariable() ||
+                (elementId instanceof GValue && ((GValue<?>) 
elementId).isVariable())) {
             return true;
         }
         for (List<Object> list : properties.values()) {
@@ -169,35 +170,33 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
 
     @Override
     public Object getLabel() {
-        if (label instanceof GValueConstantTraversal) {
-            
traversal.getGValueManager().pinVariable(((GValueConstantTraversal<?, ?>) 
label).getGValue().getName());
-            return ((GValueConstantTraversal<?, ?>) label).getGValue().get();
-        }
-        if (label instanceof ConstantTraversal) {
-            return label.next();
+        if (label instanceof GValue) {
+            traversal.getGValueManager().pinVariable(((GValue<?>) 
label).getName());
+            return ((GValue<?>) label).get();
         }
         return label;
     }
 
     @Override
     public Object getLabelWithGValue() {
-        if (label instanceof GValueConstantTraversal) {
-            return ((GValueConstantTraversal<S, String>) label).getGValue();
-        }
-        return getLabel(); //Don't need to worry about pinning as GValue case 
is covered above
+        return label;
     }
 
-    private void setLabel(Object label) {// TODO should this be public and 
added to step interface?
-        if (getLabelWithGValue().equals(Vertex.DEFAULT_LABEL)) {
+    @Override
+    public void setLabel(Object label) {
+        if (this.label.equals(this.getDefaultLabel())) {
             if (label instanceof Traversal) {
                 this.label = ((Traversal<S, String>) label).asAdmin();
-            } else {
-                this.label = label instanceof GValue ? new 
GValueConstantTraversal<>((GValue) label) : new ConstantTraversal<>((String) 
label);
-            }
-            if (label instanceof GValue) {
+                this.integrateChild((Traversal.Admin<?, ?>) this.label);
+            } else if (label instanceof GValue) {
+                this.label = label;
                 traversal.getGValueManager().register((GValue<?>) label);
+            } else {
+                this.label = label;
             }
-            this.integrateChild(this.label);
+        } else {
+            throw new IllegalArgumentException(String.format("Element T.label 
has already been set to [%s] and cannot be overridden with [%s]",
+                    this.label, label));
         }
     }
 
@@ -258,25 +257,16 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
 
     @Override
     public Object getElementId() {
-        if (elementId == null) {
-            return null;
-        }
-        if (elementId instanceof GValueConstantTraversal) {
-            
this.traversal.getGValueManager().pinVariable(((GValueConstantTraversal<S, 
Object>) elementId).getGValue().getName());
-            return ((GValueConstantTraversal<S, Object>) 
elementId).getGValue().get();
-        }
-        if (elementId instanceof ConstantTraversal) {
-            return elementId.next();
+        if (elementId instanceof GValue) {
+            this.traversal.getGValueManager().pinVariable(((GValue<?>) 
elementId).getName());
+            return ((GValue<?>) elementId).get();
         }
         return elementId;
     }
 
     @Override
     public Object getElementIdWithGValue() {
-        if (elementId instanceof GValueConstantTraversal) {
-            return ((GValueConstantTraversal<S, Object>) 
elementId).getGValue();
-        }
-        return getElementId(); //Don't need to worry about pinning as GValue 
case is covered above
+        return elementId;
     }
 
     @Override
@@ -290,24 +280,28 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
 
     @Override
     public void setElementId(Object elementId) {
+        if (this.elementId != null) {
+            throw new IllegalArgumentException(String.format("Element T.id has 
already been set to [%s] and cannot be overridden with [%s]",
+                    this.elementId, elementId));
+        }
         if (elementId instanceof Traversal) {
             this.elementId = ((Traversal<S, Object>) elementId).asAdmin();
-        } else {
-            this.elementId = elementId instanceof GValue ? new 
GValueConstantTraversal<>((GValue) elementId) : new 
ConstantTraversal<>(elementId);
-        }
-        if (elementId instanceof GValue) {
+            this.integrateChild((Traversal.Admin<?, ?>) this.elementId);
+        } else if (elementId instanceof GValue) {
             traversal.getGValueManager().register((GValue<?>) elementId);
+            this.elementId = elementId;
+        } else {
+            this.elementId = elementId;
         }
-        this.integrateChild(this.elementId);
     }
 
     @Override
     public void updateVariable(String name, Object value) {
-        if (label instanceof GValueConstantTraversal) {
-            ((GValueConstantTraversal<S, String>) label).updateVariable(name, 
value);
+        if (label instanceof GValue && name.equals(((GValue<?>) 
label).getName())) {
+            label = GValue.of(name, value);
         }
-        if (elementId instanceof GValueConstantTraversal) {
-            ((GValueConstantTraversal<S, Object>) 
elementId).updateVariable(name, value);
+        if (elementId instanceof GValue && name.equals(((GValue<?>) 
elementId).getName())) {
+            elementId = GValue.of(name, value);
         }
         for (final Map.Entry<Object, List<Object>> entry : 
properties.entrySet()) {
             for (final Object propertyVal : entry.getValue()) {
@@ -321,11 +315,11 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
     @Override
     public Collection<GValue<?>> getGValues() {
         Set<GValue<?>> gValues = 
GValueHelper.getGValuesFromProperties(properties);
-        if (label instanceof GValueConstantTraversal && 
((GValueConstantTraversal<S, String>) label).getGValue().isVariable()) {
-            gValues.add(((GValueConstantTraversal<S, String>) 
label).getGValue());
+        if (label instanceof GValue && ((GValue<?>) label).isVariable()) {
+            gValues.add((GValue<?>) label);
         }
-        if (elementId instanceof GValueConstantTraversal && 
((GValueConstantTraversal<S, Object>) elementId).isParameterized()) {
-            gValues.add(((GValueConstantTraversal<S, Object>) 
elementId).getGValue());
+        if (elementId instanceof GValue && ((GValue<?>) 
elementId).isVariable()) {
+            gValues.add((GValue<?>) elementId);
         }
         return gValues;
     }
@@ -339,10 +333,24 @@ public abstract class 
AbstractAddElementStepPlaceholder<S, E extends Element, X
     public AbstractAddElementStepPlaceholder<S, E, X> clone() {
         final AbstractAddElementStepPlaceholder<S, E, X> clone = 
(AbstractAddElementStepPlaceholder) super.clone();
         if (label != null) {
-            clone.label = label.clone();
+            // Attempt to deep clone label for Traversal and GValue.
+            if (this.label instanceof Traversal) {
+                clone.label = ((Traversal<?, ?>) this.label).asAdmin().clone();
+            } else if (this.label instanceof GValue) {
+                clone.label = ((GValue<?>) this.label).clone();
+            } else {
+                clone.label = this.label;
+            }
         }
         if (elementId != null) {
-            clone.elementId = elementId.clone();
+            // Attempt to deep clone elementId for Traversal and GValue.
+            if (this.elementId instanceof Traversal) {
+                clone.elementId = ((Traversal<?, ?>) 
this.elementId).asAdmin().clone();
+            } else if (this.elementId instanceof GValue) {
+                clone.elementId = ((GValue<?>) this.elementId).clone();
+            } else {
+                clone.elementId = this.elementId;
+            }
         }
 
         // deep clone properties
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddVertexStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddVertexStepPlaceholder.java
index 451dc4b1b9..6413b816dd 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddVertexStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AbstractAddVertexStepPlaceholder.java
@@ -19,8 +19,6 @@
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.lambda.ConstantTraversal;
-import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.GValueConstantTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.Event;
@@ -31,22 +29,26 @@ public abstract class AbstractAddVertexStepPlaceholder<S> 
extends AbstractAddEle
 
     private boolean userProvidedLabel;
 
-    public AbstractAddVertexStepPlaceholder(final Traversal.Admin traversal, 
final String label) {
-        super(traversal, label == null ? Vertex.DEFAULT_LABEL : label);
+    protected AbstractAddVertexStepPlaceholder(final Traversal.Admin 
traversal, final String label) {
+        super(traversal, label);
         userProvidedLabel = label != null;
     }
 
-    public AbstractAddVertexStepPlaceholder(final Traversal.Admin traversal, 
final GValue<String> label) {
-        super(traversal, label == null ? GValue.of(Vertex.DEFAULT_LABEL) : 
label);
+    protected AbstractAddVertexStepPlaceholder(final Traversal.Admin 
traversal, final GValue<String> label) {
+        super(traversal, label);
         userProvidedLabel = label != null;
     }
 
-    public AbstractAddVertexStepPlaceholder(final Traversal.Admin traversal, 
final Traversal.Admin<S,String> vertexLabelTraversal) {
-        super(traversal, vertexLabelTraversal == null ?
-                new ConstantTraversal<>(Vertex.DEFAULT_LABEL) : 
vertexLabelTraversal);
+    protected AbstractAddVertexStepPlaceholder(final Traversal.Admin 
traversal, final Traversal.Admin<S,String> vertexLabelTraversal) {
+        super(traversal, vertexLabelTraversal);
         userProvidedLabel = vertexLabelTraversal != null;
     }
 
+    @Override
+    protected String getDefaultLabel() {
+        return Vertex.DEFAULT_LABEL;
+    }
+
     @Override
     public boolean hasUserProvidedLabel() {
         return userProvidedLabel;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
index 2fe2827659..caa723730d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
@@ -208,6 +208,11 @@ public class AddEdgeStartStep extends AbstractStep<Edge, 
Edge>
         return label;
     }
 
+    @Override
+    public void setLabel(Object label) {
+        this.configure(T.label, label);
+    }
+
     @Override
     public Object getFrom() {
         return getAdjacentVertex(this.parameters, FROM);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStepPlaceholder.java
index 85912cdf65..edcd641a49 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStepPlaceholder.java
@@ -42,7 +42,14 @@ public class AddEdgeStartStepPlaceholder extends 
AbstractAddEdgeStepPlaceholder<
 
     @Override
     public AddEdgeStartStep asConcreteStep() {
-        AddEdgeStartStep step = new AddEdgeStartStep(traversal, label 
instanceof GValueConstantTraversal ? ((GValueConstantTraversal<?, String>) 
label).getConstantTraversal() : label);
+        AddEdgeStartStep step;
+        if (label instanceof Traversal) {
+            step = new AddEdgeStartStep(traversal, ((Traversal<?, String>) 
label).asAdmin());
+        } else if (label instanceof GValue) {
+            step = new AddEdgeStartStep(traversal, ((GValue<String>) 
label).get());
+        } else {
+            step = new AddEdgeStartStep(traversal, (String) label);
+        }
         super.configureConcreteStep(step);
         if (from != null) {
             step.addFrom(from instanceof GValueConstantTraversal ? 
((GValueConstantTraversal<?, String>) from).getConstantTraversal() : from);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
index 77d6dfcffa..e96bd99c28 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
@@ -180,6 +180,11 @@ public class AddEdgeStep<S> extends ScalarMapStep<S, Edge>
         return label;
     }
 
+    @Override
+    public void setLabel(Object label) {
+        this.configure(T.label, label);
+    }
+
     @Override
     public void addProperty(Object key, Object value) {
         configure(key, value);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStepPlaceholder.java
index b7d3b57b45..e4fd203c69 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStepPlaceholder.java
@@ -41,7 +41,14 @@ public class AddEdgeStepPlaceholder<S> extends 
AbstractAddEdgeStepPlaceholder<S>
 
     @Override
     public AddEdgeStep<S> asConcreteStep() {
-        AddEdgeStep<S> step = new AddEdgeStep<>(traversal, label instanceof 
GValueConstantTraversal ? ((GValueConstantTraversal<S, String>) 
label).getConstantTraversal() : label);
+        AddEdgeStep<S> step;
+        if (label instanceof Traversal) {
+            step = new AddEdgeStep<>(traversal, ((Traversal<S, String>) 
label).asAdmin());
+        } else if (label instanceof GValue) {
+            step = new AddEdgeStep<>(traversal, ((GValue<String>) 
label).get());
+        } else {
+            step = new AddEdgeStep<>(traversal, (String) label);
+        }
         super.configureConcreteStep(step);
         if (from != null) {
             step.addFrom(from instanceof GValueConstantTraversal ? 
((GValueConstantTraversal<S, String>) from).getConstantTraversal() : from);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddElementStepContract.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddElementStepContract.java
index 2ed91d5626..893a5607a0 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddElementStepContract.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddElementStepContract.java
@@ -33,6 +33,8 @@ public interface AddElementStepContract<S, E> extends Step<S, 
E>, PropertiesHold
         return getLabel();
     }
 
+    void setLabel(Object label);
+
     Object getElementId();
 
     default Object getElementIdWithGValue() {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
index 053b9ff911..5cdf988ba3 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
@@ -175,6 +175,11 @@ public class AddVertexStartStep extends 
AbstractStep<Vertex, Vertex> implements
         return label;
     }
 
+    @Override
+    public void setLabel(Object label) {
+        this.configure(T.label, label);
+    }
+
     @Override
     public Map<Object, List<Object>> getProperties() {
         return Collections.unmodifiableMap(parameters.getRaw());
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStepPlaceholder.java
index 8a95182a13..08e0fa9bb6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStepPlaceholder.java
@@ -20,7 +20,6 @@ package 
org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.ConstantTraversal;
-import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.GValueConstantTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -43,7 +42,14 @@ public class AddVertexStartStepPlaceholder extends 
AbstractAddVertexStepPlacehol
 
     @Override
     public AddVertexStartStep asConcreteStep() {
-        AddVertexStartStep step = new AddVertexStartStep(traversal, label 
instanceof GValueConstantTraversal ? ((GValueConstantTraversal<?, String>) 
label).getConstantTraversal() : label);
+        AddVertexStartStep step;
+        if (label instanceof Traversal) {
+            step = new AddVertexStartStep(traversal, ((Traversal<?, String>) 
label).asAdmin());
+        } else if (label instanceof GValue) {
+            step = new AddVertexStartStep(traversal, ((GValue<String>) 
label).get());
+        } else {
+            step = new AddVertexStartStep(traversal, (String) label);
+        }
         super.configureConcreteStep(step);
         return step;
     }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
index baead68ac1..93e6701700 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
@@ -161,6 +161,11 @@ public class AddVertexStep<S> extends ScalarMapStep<S, 
Vertex> implements AddVer
         return label;
     }
 
+    @Override
+    public void setLabel(Object label) {
+        this.configure(T.label, label);
+    }
+
     @Override
     public Map<Object, List<Object>> getProperties() {
         return Collections.unmodifiableMap(parameters.getRaw());
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStepPlaceholder.java
index 2147c1010a..173edd8c5f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStepPlaceholder.java
@@ -38,7 +38,14 @@ public class AddVertexStepPlaceholder<S> extends 
AbstractAddVertexStepPlaceholde
 
     @Override
     public AddVertexStep<S> asConcreteStep() {
-        AddVertexStep<S> step = new AddVertexStep<>(traversal, label 
instanceof GValueConstantTraversal ? ((GValueConstantTraversal<S, String>) 
label).getConstantTraversal() : label);
+        AddVertexStep<S> step;
+        if (label instanceof Traversal) {
+            step = new AddVertexStep<>(traversal, ((Traversal<S, String>) 
label).asAdmin());
+        } else if (label instanceof GValue) {
+            step = new AddVertexStep<>(traversal, ((GValue<String>) 
label).get());
+        } else {
+            step = new AddVertexStep<>(traversal, (String) label);
+        }
         super.configureConcreteStep(step);
         return step;
     }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParentTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParentTest.java
index f209b11ac5..c422f18b81 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParentTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParentTest.java
@@ -157,7 +157,7 @@ public class TraversalParentTest {
                 {AddVertexStepContract.class,
                         g.addV("label").property("name", __.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label")),
+                        List.of(__.constant("cole")),
                         null, null
                 },
                 {AddVertexStepContract.class,
@@ -175,19 +175,19 @@ public class TraversalParentTest {
                 {AddVertexStepContract.class,
                         g.addV(GValue.of("l", "label")).property("name", 
GValue.of("name", "cole")),
                         List.of(),
-                        List.of(new ConstantTraversal<>("label")), // Property 
is not stored as a child traversal in this case
+                        List.of(), // Property is not stored as a child 
traversal in this case
                         null, null
                 },
                 {AddVertexStepContract.class,
                         g.addV("label").property(__.constant("name"), 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("name"), __.constant("cole"), new 
ConstantTraversal<>("label")),
+                        List.of(__.constant("name"), __.constant("cole")),
                         null, null
                 },
                 {AddVertexStepContract.class,
                         g.inject(1).addV("label").property("name", 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label")),
+                        List.of(__.constant("cole")),
                         null, null
                 },
                 {AddVertexStepContract.class,
@@ -199,19 +199,19 @@ public class TraversalParentTest {
                 {AddVertexStepContract.class,
                         g.inject(1).addV(GValue.of("l", 
"label")).property("name", GValue.of("name", "cole")),
                         List.of(),
-                        List.of(new ConstantTraversal<>("label")), // Property 
is not stored as a child traversal in this case
+                        List.of(), // Property is not stored as a child 
traversal in this case
                         null, null
                 },
                 {AddVertexStepContract.class,
                         
g.inject(1).addV("label").property(__.constant("name"), __.constant("cole")),
                         List.of(),
-                        List.of(__.constant("name"), __.constant("cole"), new 
ConstantTraversal<>("label")),
+                        List.of(__.constant("name"), __.constant("cole")),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         g.addE("label").from(1).to(2).property("name", 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label"), __.constant(1), __.constant(2)),
+                        List.of(__.constant("cole"), __.constant(1), 
__.constant(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
@@ -219,49 +219,49 @@ public class TraversalParentTest {
                                 .property("name", __.constant("cole"))
                                 .property(T.id, __.constant(5)),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label"), __.V(1), __.V(2), __.constant(5)),
+                        List.of(__.constant("cole"), __.V(1), __.V(2), 
__.constant(5)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         
g.addE("label").from(__.V(1)).to(__.V(2)).property("name", __.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label"), __.V(1), __.V(2)),
+                        List.of(__.constant("cole"), __.V(1), __.V(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         g.addE(GValue.of("l", "label")).from(GValue.of("from", 
1)).to(GValue.of("to", 2)).property("name", GValue.of("name", "cole")),
                         List.of(),
-                        List.of(new ConstantTraversal<>("label"), new 
ConstantTraversal<>(1), new ConstantTraversal<>(2)),
+                        List.of(new ConstantTraversal<>(1), new 
ConstantTraversal<>(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         
g.addE("label").from(1).to(2).property(__.constant("name"), 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("name"), __.constant("cole"), new 
ConstantTraversal<>("label"), __.constant(1), __.constant(2)),
+                        List.of(__.constant("name"), __.constant("cole"), 
__.constant(1), __.constant(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         
g.inject(1).addE("label").from(1).to(2).property("name", __.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label"), __.constant(1), __.constant(2)),
+                        List.of(__.constant("cole"), __.constant(1), 
__.constant(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         
g.inject(1).addE("label").from(__.V(1)).to(__.V(2)).property("name", 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("cole"), new 
ConstantTraversal<>("label"), __.V(1), __.V(2)),
+                        List.of(__.constant("cole"), __.V(1), __.V(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         g.inject(1).addE(GValue.of("l", 
"label")).from(GValue.of("from", 1)).to(GValue.of("to", 2)).property("name", 
GValue.of("name", "cole")),
                         List.of(),
-                        List.of(new ConstantTraversal<>("label"), new 
ConstantTraversal<>(1), new ConstantTraversal<>(2)),
+                        List.of(new ConstantTraversal<>(1), new 
ConstantTraversal<>(2)),
                         null, null
                 },
                 {AddEdgeStepContract.class,
                         
g.inject(1).addE("label").from(1).to(2).property(__.constant("name"), 
__.constant("cole")),
                         List.of(),
-                        List.of(__.constant("name"), __.constant("cole"), new 
ConstantTraversal<>("label"), __.constant(1), __.constant(2)),
+                        List.of(__.constant("name"), __.constant("cole"), 
__.constant(1), __.constant(2)),
                         null, null
                 },
                 {CallStepContract.class,
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
index fa085026b9..5cdcf8badd 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
@@ -76,7 +76,6 @@ public class ReservedKeysVerificationStrategyTest {
                 {__.addV().property("id", 123), false},
                 {__.addE("knows").property("id", 123), false},
                 {__.addV().property(T.id, 123), true},
-                {__.addE("knows").property(T.label, "blah"), true},
                 {__.addV().property("label", "xyz"), false},
                 {__.addE("knows").property("id", "xyz"), false},
                 {__.addV().property("x", "xyz", "label", "xxx"), false},


Reply via email to