Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-5180

Enum Comparison results in incorrect map behavior when using add assignment operator

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.8.2
    • Fix Version/s: 1.8.4
    • Component/s: Compiler
    • Labels:
      None
    • Environment:
      java version "1.6.0_23"
      OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10)
      OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

      Groovy Version: 1.8.2 JVM: 1.6.0_23

      Description

      In the attached test case you will see four methods which do the same three things. Each initializes a map, increments a value in the map, and then returns the map. The method called "works()" uses the add assignment operator to do this. The "buggy()" method is the same, but adds an enum comparison.

      There is some interaction between the enum comparison and the += operator. The method "numericComparison()" is just like "buggy()," but performs an integer comparison. The "workaround()" method avoids the += operator. Both of these methods return a Map as expected.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              davidclark David Clark
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: