Github user GCHQResearcher1337 commented on a diff in the pull request:

    https://github.com/apache/tinkerpop/pull/876#discussion_r202442057
  
    --- Diff: 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStepTest.java
 ---
    @@ -39,7 +39,9 @@
                     __.repeat(out()).times(3),
                     __.repeat(out().as("x")).times(3),
                     __.out().emit().repeat(out()).times(3),
    -                __.repeat(out()).until(hasLabel("x"))
    +                __.repeat(out()).until(hasLabel("x")),
    +                __.repeat("a", __.out()).times(3),
    --- End diff --
    
    I don't quite understand your first point - `__.repeat(out()).times(3)` is 
the first entry in the array and I believe this did fail before the 
`hashCode()` fix.
    
    Good point about the collision. 
    Maybe I could use the same method the emit first and until first use? ie:
    ```
    @Override
        public int hashCode() {
            int result = super.hashCode() ^ (this.repeatTraversal.hashCode() << 
1);
            result ^= Boolean.hashCode(this.untilFirst);
            result ^= Boolean.hashCode(this.emitFirst) << 1;
            if (this.loopName != null)
                result ^= this.loopName.hashCode();
            if (this.untilTraversal != null)
                result ^= this.untilTraversal.hashCode();
            if (this.emitTraversal != null)
                result ^= this.emitTraversal.hashCode();
            return result;
        }
    ```


---

Reply via email to