Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.1-rc-3
    • None
    • groovy-runtime
    • None

    Description

      GStrings are one of the big groovy features. But there current equals behavior in collections makes them useless for many use cases. Very confusing is also the behavioral difference between lists and other collections.

      All tests fail except the first one. (Tests run against rev 9408)

      class StringVersusGStringEqualsInCollections extends GroovyTestCase {
      
          String string
          GString gString
      
          void setUp() {
              def g = 'g'
              string = 'groovy'
              gString = "${g}roovy"
          }
      
          void testEqualsInList() {
              assertEquals([string], [gString])
          }
      
          void testEqualsInSet() {
              assertEquals([string] as Set, [gString] as Set)
          }
      
          void testKeyEqualsInMap() {
              String someValue = 'somevalue'
              Map stringMap = [(string): someValue]
              Map gStringMap = [(gString): someValue]
              assertEquals(stringMap, gStringMap)
          }
      
          void testValueEqualsInMap() {
              String someKey = 'somekey'
              Map stringMap = [(someKey): string]
              Map gStringMap = [(someKey): gString]
              assertEquals(stringMap, gStringMap)
          }
      }
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              hans_d Hans Dockter
              Votes:
              7 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: